From patchwork Sat Nov 12 23:48:50 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Garek Dyszel X-Patchwork-Id: 44496 Return-Path: X-Original-To: patchwork@mira.cbaines.net Delivered-To: patchwork@mira.cbaines.net Received: by mira.cbaines.net (Postfix, from userid 113) id 1306F27BBE9; Sun, 13 Nov 2022 08:29:38 +0000 (GMT) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mira.cbaines.net (Postfix) with ESMTPS id 0739127BBE9 for ; Sun, 13 Nov 2022 08:29:30 +0000 (GMT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ou8Mk-0006Fv-RB; Sun, 13 Nov 2022 03:29:24 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ou8MV-0006F0-C8 for guix-patches@gnu.org; Sun, 13 Nov 2022 03:29:12 -0500 Received: from debbugs.gnu.org ([209.51.188.43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1ou8MU-00060v-28 for guix-patches@gnu.org; Sun, 13 Nov 2022 03:29:07 -0500 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1ou8MT-0002Yv-2F for guix-patches@gnu.org; Sun, 13 Nov 2022 03:29:05 -0500 X-Loop: help-debbugs@gnu.org Subject: [bug#58310] Manifest for coq-mathcomp-analysis Resent-From: Garek Dyszel Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Sun, 13 Nov 2022 08:29:03 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 58310 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: zimoun , 58310@debbugs.gnu.org Cc: pukkamustard , Julien Lepiller Received: via spool by 58310-submit@debbugs.gnu.org id=B58310.16683280879758 (code B ref 58310); Sun, 13 Nov 2022 08:29:03 +0000 Received: (at 58310) by debbugs.gnu.org; 13 Nov 2022 08:28:07 +0000 Received: from localhost ([127.0.0.1]:49997 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ou8LW-0002XJ-Jt for submit@debbugs.gnu.org; Sun, 13 Nov 2022 03:28:07 -0500 Received: from knopi.disroot.org ([178.21.23.139]:48714) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ou0Fz-0001pn-G6 for 58310@debbugs.gnu.org; Sat, 12 Nov 2022 18:49:53 -0500 Received: from localhost (localhost [127.0.0.1]) by disroot.org (Postfix) with ESMTP id 0F65E410CB; Sun, 13 Nov 2022 00:49:50 +0100 (CET) X-Virus-Scanned: SPAM Filter at disroot.org Received: from knopi.disroot.org ([127.0.0.1]) by localhost (disroot.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 6u7rYSL7UNQD; Sun, 13 Nov 2022 00:49:36 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=disroot.org; s=mail; t=1668296975; bh=/sIBGRbV4cx1aQOQl/KhML0jDieMVDPykoWToKx6fmY=; h=From:To:Cc:Subject:In-Reply-To:References:Date:From; b=GqwOaq8kwnIBVNWUzf8S74a9XfooW7pxLg5GKaBwsRw6/xH1ZTvMnsEuOYxJO5u2m e9taFx5k+S+X/ukfRDdyDwxPn9mVZtyTgFNxCo4mcQ53oNuqOTTg7sNr/rHxR2gRH2 IxF2xNExHEDT2N/rzXgC4c69AAeMZ+jR5uIyIbquIpw4cDCcCGmIt6CuoO/F0d0kac M0n4X39kNNxGUHNMwEDpUI15lltYsODR3Ca6FbFiaYWZ1rfkj7/nHXQYhCFziy7PFg KlqEaS+kqkKf2+OW+xTTjc8XdWBFXGR9ExuTTF1/Zh9Ep53+azb2LJTC37SQZ/z1vQ CFU57om0+aSEw== In-Reply-To: References: <87h70iqji2.fsf@disroot.org> Date: Sat, 12 Nov 2022 18:48:50 -0500 Message-ID: <87v8njspi5.fsf@disroot.org> MIME-Version: 1.0 X-Mailman-Approved-At: Sun, 13 Nov 2022 03:27:59 -0500 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: guix-patches@gnu.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-to: Garek Dyszel X-ACL-Warn: , Garek Dyszel via Guix-patches X-Patchwork-Original-From: Garek Dyszel via Guix-patches via From: Garek Dyszel Errors-To: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org Sender: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org X-getmail-retrieved-from-mailbox: Patches Hi, CC: ocaml team I am including a manifest file instead of sending patches for now. It seems like a good idea to stick with that until these packages are ready to be put into the Guix source tree. I'm refactoring them too often. After opening an issue on Github [1] [2], it seems that coq-elpi is the package that is not building properly. It is clear that ocamlfind (from ocaml-findlib) can't find coq-elpi after coq-elpi's install phase. [1]: https://github.com/math-comp/hierarchy-builder/issues/320 [2]: https://github.com/LPCIC/coq-elpi/issues/384 It looks like the META file is not being installed by coq-elpi either. I'm not sure whether that's relevant, since ocamlfind couldn't find coq-elpi even when META was present (in a much older revision of this manifest; I can dig for it but just today don't have time). The problem seems to be something in the build process itself; if the extra phase 'check-findlib-path' is omitted then coq-elpi's build is reported as a success. The later package coq-mathcomp-hierarchy-builder runs ocamlfind to find coq-elpi, too. What would be a way to ensure that coq-elpi is found by ocamlfind? Thanks! Garek (Manifest attached with an ocaml-elpi patch. You will need to change the path for the ocaml-elpi (patches) field to match your directory structure, but otherwise this manifest should work.) From 998dc654e5acd66d5d0c8ebe79ed04dd424eb698 Mon Sep 17 00:00:00 2001 From: Julien Puydt Date: Mon, 24 Oct 2022 11:44:08 +0200 Subject: [PATCH 1/2] Fix for yojson 2.0.2 --- src/elpi_trace_elaborator.ml | 6 +- tests/sources/broken_trace1.elab.json | 35691 ++++++++---------------- tests/sources/trace.elab.json | 3 +- tests/sources/trace2.elab.json | 27 +- tests/sources/trace_chr.elab.json | 90 +- tests/sources/trace_findall.elab.json | 12 +- 6 files changed, 11944 insertions(+), 23885 deletions(-) diff --git a/src/elpi_trace_elaborator.ml b/src/elpi_trace_elaborator.ml index 6d3ac0e2..6c07209c 100644 --- a/src/elpi_trace_elaborator.ml +++ b/src/elpi_trace_elaborator.ml @@ -664,6 +664,6 @@ let main = let cards = Trace.cards steps ~stack_frames ~aggregated_goal_success ~goal_text ~goal_attempts in - let ob = Bi_outbuf.create_channel_writer stdout in - write_trace ob cards; - Bi_outbuf.flush_channel_writer ob + let buf = Buffer.create 1000 in + write_trace buf cards; + Buffer.output_buffer stdout buf diff --git a/tests/sources/broken_trace1.elab.json b/tests/sources/broken_trace1.elab.json index ed59855d..0daa61ab 100644 --- a/tests/sources/broken_trace1.elab.json +++ b/tests/sources/broken_trace1.elab.json @@ -5,8 +5,7 @@ "step": [ "Init", { - "goal_text": - "attributes\n [attribute elpi.loc \n (leaf-loc File \"(stdin)\", line 1, column 2, character 3:)] =>\n main\n [const-decl _ \n (some\n (app\n [global (const «IsSelfA'.phant_Build»), global (indt «nat»), \n global (indc «O»), fun `x` X0 c0 \\ c0])) (arity X1)]", + "goal_text": "attributes\n [attribute elpi.loc \n (leaf-loc File \"(stdin)\", line 1, column 2, character 3:)] =>\n main\n [const-decl _ \n (some\n (app\n [global (const «IsSelfA'.phant_Build»), global (indt «nat»), \n global (indc «O»), fun `x` X0 c0 \\ c0])) (arity X1)]", "goal_id": 1121 } ], @@ -19,8 +18,7 @@ "Inference", { "current_goal_id": 1121, - "current_goal_text": - "attributes\n [attribute elpi.loc \n (leaf-loc File \"(stdin)\", line 1, column 2, character 3:)] =>\n main\n [const-decl _ \n (some\n (app\n [global (const «IsSelfA'.phant_Build»), global (indt «nat»), \n global (indc «O»), fun `x` X0 c0 \\ c0])) (arity X1)]", + "current_goal_text": "attributes\n [attribute elpi.loc \n (leaf-loc File \"(stdin)\", line 1, column 2, character 3:)] =>\n main\n [const-decl _ \n (some\n (app\n [global (const «IsSelfA'.phant_Build»), global (indt «nat»), \n global (indc «O»), fun `x` X0 c0 \\ c0])) (arity X1)]", "current_goal_predicate": "=>", "failed_attempts": [], "successful_attempts": [ @@ -31,8 +29,7 @@ }, "siblings": [ { - "goal_text": - "main\n [const-decl _ \n (some\n (app\n [global (const «IsSelfA'.phant_Build»), global (indt «nat»), \n global (indc «O»), fun `x` X0 c0 \\ c0])) (arity X1)]", + "goal_text": "main\n [const-decl _ \n (some\n (app\n [global (const «IsSelfA'.phant_Build»), global (indt «nat»), \n global (indc «O»), fun `x` X0 c0 \\ c0])) (arity X1)]", "goal_id": 1122 } ], @@ -58,8 +55,7 @@ "Inference", { "current_goal_id": 1122, - "current_goal_text": - "main\n [const-decl _ \n (some\n (app\n [global (const «IsSelfA'.phant_Build»), global (indt «nat»), \n global (indc «O»), fun `x` X0 c0 \\ c0])) (arity X1)]", + "current_goal_text": "main\n [const-decl _ \n (some\n (app\n [global (const «IsSelfA'.phant_Build»), global (indt «nat»), \n global (indc «O»), fun `x` X0 c0 \\ c0])) (arity X1)]", "current_goal_predicate": "main", "failed_attempts": [], "successful_attempts": [ @@ -68,8 +64,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -93,8 +88,7 @@ "siblings": [ { "goal_text": "!", "goal_id": 1123 }, { - "goal_text": - "with-attributes\n (with-logging\n (instance.declare-const _ \n (app\n [global (const «IsSelfA'.phant_Build»), global (indt «nat»), \n global (indc «O»), fun `x` X0 c0 \\ c0]) (arity X1) _))", + "goal_text": "with-attributes\n (with-logging\n (instance.declare-const _ \n (app\n [global (const «IsSelfA'.phant_Build»), global (indt «nat»), \n global (indc «O»), fun `x` X0 c0 \\ c0]) (arity X1) _))", "goal_id": 1124 } ], @@ -107,8 +101,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -143,13 +136,11 @@ "cut_victims": [ { "cut_branch_for_goal": { - "goal_text": - "main\n [const-decl _ \n (some\n (app\n [global (const «IsSelfA'.phant_Build»), global (indt «nat»), \n global (indc «O»), fun `x` X0 c0 \\ c0])) (arity X1)]", + "goal_text": "main\n [const-decl _ \n (some\n (app\n [global (const «IsSelfA'.phant_Build»), global (indt «nat»), \n global (indc «O»), fun `x` X0 c0 \\ c0])) (arity X1)]", "goal_id": 1122 }, "cut_branch": { - "rule_text": - "(main [A0, A1]) :- (!), \n (coq.warning HB HB.deprecated \n The syntax \"HB.instance Key FactoryInstance\" is deprecated, use \"HB.instance Definition\" instead), \n (with-attributes (with-logging (instance.declare-existing A0 A1))).", + "rule_text": "(main [A0, A1]) :- (!), \n (coq.warning HB HB.deprecated \n The syntax \"HB.instance Key FactoryInstance\" is deprecated, use \"HB.instance Definition\" instead), \n (with-attributes (with-logging (instance.declare-existing A0 A1))).", "rule_loc": [ "File", { @@ -163,13 +154,11 @@ }, { "cut_branch_for_goal": { - "goal_text": - "main\n [const-decl _ \n (some\n (app\n [global (const «IsSelfA'.phant_Build»), global (indt «nat»), \n global (indc «O»), fun `x` X0 c0 \\ c0])) (arity X1)]", + "goal_text": "main\n [const-decl _ \n (some\n (app\n [global (const «IsSelfA'.phant_Build»), global (indt «nat»), \n global (indc «O»), fun `x` X0 c0 \\ c0])) (arity X1)]", "goal_id": 1122 }, "cut_branch": { - "rule_text": - "(main _) :- (coq.error\n Usage: HB.instance Definition := T ...).", + "rule_text": "(main _) :- (coq.error\n Usage: HB.instance Definition := T ...).", "rule_loc": [ "File", { @@ -193,8 +182,7 @@ "Inference", { "current_goal_id": 1124, - "current_goal_text": - "with-attributes\n (with-logging\n (instance.declare-const _ \n (app\n [global (const «IsSelfA'.phant_Build»), global (indt «nat»), \n global (indc «O»), fun `x` X0 c0 \\ c0]) (arity X1) _))", + "current_goal_text": "with-attributes\n (with-logging\n (instance.declare-const _ \n (app\n [global (const «IsSelfA'.phant_Build»), global (indt «nat»), \n global (indc «O»), fun `x` X0 c0 \\ c0]) (arity X1) _))", "current_goal_predicate": "with-attributes", "failed_attempts": [], "successful_attempts": [ @@ -203,13 +191,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -227,14 +213,12 @@ "siblings": [ { "goal_text": "attributes X2", "goal_id": 1125 }, { - "goal_text": - "pi c0 \\\n pi c1 \\\n pi c2 \\\n pi c3 \\\n pi c4 \\\n pi c5 \\\n pi c6 \\\n pi c7 \\\n parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi c8 \\ supported-attribute (att c8 string) :- ! =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4) =>\n coq.parse-attributes X2 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, att primitive_class bool, \n att primitive bool, att non_forgetful_inheritance bool, att hnf bool] X3", + "goal_text": "pi c0 \\\n pi c1 \\\n pi c2 \\\n pi c3 \\\n pi c4 \\\n pi c5 \\\n pi c6 \\\n pi c7 \\\n parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi c8 \\ supported-attribute (att c8 string) :- ! =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4) =>\n coq.parse-attributes X2 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, att primitive_class bool, \n att primitive bool, att non_forgetful_inheritance bool, att hnf bool] X3", "goal_id": 1126 }, { "goal_text": "!", "goal_id": 1127 }, { - "goal_text": - "X3 =>\n (save-docstring ,\n with-logging\n (instance.declare-const _ \n (app\n [global (const «IsSelfA'.phant_Build»), global (indt «nat»), \n global (indc «O»), fun `x` X0 c0 \\ c0]) (arity X1) _))", + "goal_text": "X3 =>\n (save-docstring ,\n with-logging\n (instance.declare-const _ \n (app\n [global (const «IsSelfA'.phant_Build»), global (indt «nat»), \n global (indc «O»), fun `x` X0 c0 \\ c0]) (arity X1) _))", "goal_id": 1128 } ], @@ -247,13 +231,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -268,8 +250,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -310,8 +291,7 @@ "rule": [ "UserRule", { - "rule_text": - "(attributes\n [attribute elpi.loc \n (leaf-loc File \"(stdin)\", line 1, column 2, character 3:)]) :- .", + "rule_text": "(attributes\n [attribute elpi.loc \n (leaf-loc File \"(stdin)\", line 1, column 2, character 3:)]) :- .", "rule_loc": [ "Context", 1 ] } ], @@ -332,8 +312,7 @@ "rule": [ "UserRule", { - "rule_text": - "(attributes\n [attribute elpi.loc \n (leaf-loc File \"(stdin)\", line 1, column 2, character 3:)]) :- .", + "rule_text": "(attributes\n [attribute elpi.loc \n (leaf-loc File \"(stdin)\", line 1, column 2, character 3:)]) :- .", "rule_loc": [ "Context", 1 ] } ], @@ -344,13 +323,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -365,8 +342,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -398,8 +374,7 @@ "Inference", { "current_goal_id": 1126, - "current_goal_text": - "pi c0 \\\n pi c1 \\\n pi c2 \\\n pi c3 \\\n pi c4 \\\n pi c5 \\\n pi c6 \\\n pi c7 \\\n parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi c8 \\ supported-attribute (att c8 string) :- ! =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4) =>\n coq.parse-attributes\n [attribute elpi.loc \n (leaf-loc File \"(stdin)\", line 1, column 2, character 3:)] \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, att primitive_class bool, \n att primitive bool, att non_forgetful_inheritance bool, att hnf bool] X3", + "current_goal_text": "pi c0 \\\n pi c1 \\\n pi c2 \\\n pi c3 \\\n pi c4 \\\n pi c5 \\\n pi c6 \\\n pi c7 \\\n parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi c8 \\ supported-attribute (att c8 string) :- ! =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4) =>\n coq.parse-attributes\n [attribute elpi.loc \n (leaf-loc File \"(stdin)\", line 1, column 2, character 3:)] \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, att primitive_class bool, \n att primitive bool, att non_forgetful_inheritance bool, att hnf bool] X3", "current_goal_predicate": "=>", "failed_attempts": [], "successful_attempts": [ @@ -410,8 +385,7 @@ }, "siblings": [ { - "goal_text": - "coq.parse-attributes\n [attribute elpi.loc \n (leaf-loc File \"(stdin)\", line 1, column 2, character 3:)] \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, att primitive_class bool, \n att primitive bool, att non_forgetful_inheritance bool, att hnf bool] X3", + "goal_text": "coq.parse-attributes\n [attribute elpi.loc \n (leaf-loc File \"(stdin)\", line 1, column 2, character 3:)] \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, att primitive_class bool, \n att primitive bool, att non_forgetful_inheritance bool, att hnf bool] X3", "goal_id": 1129 } ], @@ -429,13 +403,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -450,8 +422,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -483,8 +454,7 @@ "Inference", { "current_goal_id": 1129, - "current_goal_text": - "coq.parse-attributes\n [attribute elpi.loc \n (leaf-loc File \"(stdin)\", line 1, column 2, character 3:)] \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, att primitive_class bool, \n att primitive bool, att non_forgetful_inheritance bool, att hnf bool] X3", + "current_goal_text": "coq.parse-attributes\n [attribute elpi.loc \n (leaf-loc File \"(stdin)\", line 1, column 2, character 3:)] \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, att primitive_class bool, \n att primitive bool, att non_forgetful_inheritance bool, att hnf bool] X3", "current_goal_predicate": "coq.parse-attributes", "failed_attempts": [], "successful_attempts": [ @@ -493,8 +463,7 @@ "rule": [ "UserRule", { - "rule_text": - "(coq.parse-attributes A0 A1 A2) :- (std.map A1 (c0 \\ (c1 \\\n (c1 = supported-attribute c0))) A3), \n (A3 => parse-attributes.aux A0 A2), (!).", + "rule_text": "(coq.parse-attributes A0 A1 A2) :- (std.map A1 (c0 \\ (c1 \\\n (c1 = supported-attribute c0))) A3), \n (A3 => parse-attributes.aux A0 A2), (!).", "rule_loc": [ "File", { @@ -520,13 +489,11 @@ }, "siblings": [ { - "goal_text": - "std.map\n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, att primitive_class bool, \n att primitive bool, att non_forgetful_inheritance bool, att hnf bool] (c0 \\\n c1 \\ c1 = supported-attribute c0) X4", + "goal_text": "std.map\n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, att primitive_class bool, \n att primitive bool, att non_forgetful_inheritance bool, att hnf bool] (c0 \\\n c1 \\ c1 = supported-attribute c0) X4", "goal_id": 1130 }, { - "goal_text": - "X4 =>\n parse-attributes.aux\n [attribute elpi.loc \n (leaf-loc File \"(stdin)\", line 1, column 2, character 3:)] X3", + "goal_text": "X4 =>\n parse-attributes.aux\n [attribute elpi.loc \n (leaf-loc File \"(stdin)\", line 1, column 2, character 3:)] X3", "goal_id": 1131 }, { "goal_text": "!", "goal_id": 1132 } @@ -540,8 +507,7 @@ "rule": [ "UserRule", { - "rule_text": - "(coq.parse-attributes A0 A1 A2) :- (std.map A1 (c0 \\ (c1 \\\n (c1 = supported-attribute c0))) A3), \n (A3 => parse-attributes.aux A0 A2), (!).", + "rule_text": "(coq.parse-attributes A0 A1 A2) :- (std.map A1 (c0 \\ (c1 \\\n (c1 = supported-attribute c0))) A3), \n (A3 => parse-attributes.aux A0 A2), (!).", "rule_loc": [ "File", { @@ -565,13 +531,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -586,8 +550,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -619,8 +582,7 @@ "Inference", { "current_goal_id": 1130, - "current_goal_text": - "std.map\n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, att primitive_class bool, \n att primitive bool, att non_forgetful_inheritance bool, att hnf bool] (c0 \\\n c1 \\ c1 = supported-attribute c0) X4", + "current_goal_text": "std.map\n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, att primitive_class bool, \n att primitive bool, att non_forgetful_inheritance bool, att hnf bool] (c0 \\\n c1 \\ c1 = supported-attribute c0) X4", "current_goal_predicate": "std.map", "failed_attempts": [], "successful_attempts": [ @@ -629,8 +591,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -660,8 +621,7 @@ "goal_id": 1133 }, { - "goal_text": - "std.map\n [att mathcomp bool, att mathcomp.axiom string, att short.type string, \n att short.pack string, att infer attmap, att key string, \n att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, att primitive_class bool, \n att primitive bool, att non_forgetful_inheritance bool, att hnf bool] (c0 \\\n c1 \\ c1 = supported-attribute c0) X6", + "goal_text": "std.map\n [att mathcomp bool, att mathcomp.axiom string, att short.type string, \n att short.pack string, att infer attmap, att key string, \n att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, att primitive_class bool, \n att primitive bool, att non_forgetful_inheritance bool, att hnf bool] (c0 \\\n c1 \\ c1 = supported-attribute c0) X6", "goal_id": 1134 } ], @@ -674,8 +634,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -694,8 +653,7 @@ "rule": [ "UserRule", { - "rule_text": - "(coq.parse-attributes A0 A1 A2) :- (std.map A1 (c0 \\ (c1 \\\n (c1 = supported-attribute c0))) A3), \n (A3 => parse-attributes.aux A0 A2), (!).", + "rule_text": "(coq.parse-attributes A0 A1 A2) :- (std.map A1 (c0 \\ (c1 \\\n (c1 = supported-attribute c0))) A3), \n (A3 => parse-attributes.aux A0 A2), (!).", "rule_loc": [ "File", { @@ -719,13 +677,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -740,8 +696,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -799,8 +754,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -819,8 +773,7 @@ "rule": [ "UserRule", { - "rule_text": - "(coq.parse-attributes A0 A1 A2) :- (std.map A1 (c0 \\ (c1 \\\n (c1 = supported-attribute c0))) A3), \n (A3 => parse-attributes.aux A0 A2), (!).", + "rule_text": "(coq.parse-attributes A0 A1 A2) :- (std.map A1 (c0 \\ (c1 \\\n (c1 = supported-attribute c0))) A3), \n (A3 => parse-attributes.aux A0 A2), (!).", "rule_loc": [ "File", { @@ -844,13 +797,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -865,8 +816,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -898,8 +848,7 @@ "Inference", { "current_goal_id": 1134, - "current_goal_text": - "std.map\n [att mathcomp bool, att mathcomp.axiom string, att short.type string, \n att short.pack string, att infer attmap, att key string, \n att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, att primitive_class bool, \n att primitive bool, att non_forgetful_inheritance bool, att hnf bool] (c0 \\\n c1 \\ c1 = supported-attribute c0) X6", + "current_goal_text": "std.map\n [att mathcomp bool, att mathcomp.axiom string, att short.type string, \n att short.pack string, att infer attmap, att key string, \n att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, att primitive_class bool, \n att primitive bool, att non_forgetful_inheritance bool, att hnf bool] (c0 \\\n c1 \\ c1 = supported-attribute c0) X6", "current_goal_predicate": "std.map", "failed_attempts": [], "successful_attempts": [ @@ -908,8 +857,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -939,8 +887,7 @@ "goal_id": 1135 }, { - "goal_text": - "std.map\n [att mathcomp.axiom string, att short.type string, att short.pack string, \n att infer attmap, att key string, att arg_sort bool, att log bool, \n att log.raw bool, att compress_coercions bool, att export bool, \n att skip string, att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] (c0 \\ c1 \\\n c1 = supported-attribute c0) X8", + "goal_text": "std.map\n [att mathcomp.axiom string, att short.type string, att short.pack string, \n att infer attmap, att key string, att arg_sort bool, att log bool, \n att log.raw bool, att compress_coercions bool, att export bool, \n att skip string, att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] (c0 \\ c1 \\\n c1 = supported-attribute c0) X8", "goal_id": 1136 } ], @@ -953,8 +900,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -973,8 +919,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -993,8 +938,7 @@ "rule": [ "UserRule", { - "rule_text": - "(coq.parse-attributes A0 A1 A2) :- (std.map A1 (c0 \\ (c1 \\\n (c1 = supported-attribute c0))) A3), \n (A3 => parse-attributes.aux A0 A2), (!).", + "rule_text": "(coq.parse-attributes A0 A1 A2) :- (std.map A1 (c0 \\ (c1 \\\n (c1 = supported-attribute c0))) A3), \n (A3 => parse-attributes.aux A0 A2), (!).", "rule_loc": [ "File", { @@ -1018,13 +962,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -1039,8 +981,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -1098,8 +1039,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -1118,8 +1058,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -1138,8 +1077,7 @@ "rule": [ "UserRule", { - "rule_text": - "(coq.parse-attributes A0 A1 A2) :- (std.map A1 (c0 \\ (c1 \\\n (c1 = supported-attribute c0))) A3), \n (A3 => parse-attributes.aux A0 A2), (!).", + "rule_text": "(coq.parse-attributes A0 A1 A2) :- (std.map A1 (c0 \\ (c1 \\\n (c1 = supported-attribute c0))) A3), \n (A3 => parse-attributes.aux A0 A2), (!).", "rule_loc": [ "File", { @@ -1163,13 +1101,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -1184,8 +1120,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -1217,8 +1152,7 @@ "Inference", { "current_goal_id": 1136, - "current_goal_text": - "std.map\n [att mathcomp.axiom string, att short.type string, att short.pack string, \n att infer attmap, att key string, att arg_sort bool, att log bool, \n att log.raw bool, att compress_coercions bool, att export bool, \n att skip string, att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] (c0 \\ c1 \\\n c1 = supported-attribute c0) X8", + "current_goal_text": "std.map\n [att mathcomp.axiom string, att short.type string, att short.pack string, \n att infer attmap, att key string, att arg_sort bool, att log bool, \n att log.raw bool, att compress_coercions bool, att export bool, \n att skip string, att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] (c0 \\ c1 \\\n c1 = supported-attribute c0) X8", "current_goal_predicate": "std.map", "failed_attempts": [], "successful_attempts": [ @@ -1227,8 +1161,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -1254,13 +1187,11 @@ }, "siblings": [ { - "goal_text": - "X9 = supported-attribute (att mathcomp.axiom string)", + "goal_text": "X9 = supported-attribute (att mathcomp.axiom string)", "goal_id": 1137 }, { - "goal_text": - "std.map\n [att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, att primitive_class bool, \n att primitive bool, att non_forgetful_inheritance bool, att hnf bool] (c0 \\\n c1 \\ c1 = supported-attribute c0) X10", + "goal_text": "std.map\n [att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, att primitive_class bool, \n att primitive bool, att non_forgetful_inheritance bool, att hnf bool] (c0 \\\n c1 \\ c1 = supported-attribute c0) X10", "goal_id": 1138 } ], @@ -1273,8 +1204,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -1293,8 +1223,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -1313,8 +1242,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -1333,8 +1261,7 @@ "rule": [ "UserRule", { - "rule_text": - "(coq.parse-attributes A0 A1 A2) :- (std.map A1 (c0 \\ (c1 \\\n (c1 = supported-attribute c0))) A3), \n (A3 => parse-attributes.aux A0 A2), (!).", + "rule_text": "(coq.parse-attributes A0 A1 A2) :- (std.map A1 (c0 \\ (c1 \\\n (c1 = supported-attribute c0))) A3), \n (A3 => parse-attributes.aux A0 A2), (!).", "rule_loc": [ "File", { @@ -1358,13 +1285,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -1379,8 +1304,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -1412,8 +1336,7 @@ "Inference", { "current_goal_id": 1137, - "current_goal_text": - "X9 = supported-attribute (att mathcomp.axiom string)", + "current_goal_text": "X9 = supported-attribute (att mathcomp.axiom string)", "current_goal_predicate": "=", "failed_attempts": [], "successful_attempts": [ @@ -1442,8 +1365,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -1462,8 +1384,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -1482,8 +1403,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -1502,8 +1422,7 @@ "rule": [ "UserRule", { - "rule_text": - "(coq.parse-attributes A0 A1 A2) :- (std.map A1 (c0 \\ (c1 \\\n (c1 = supported-attribute c0))) A3), \n (A3 => parse-attributes.aux A0 A2), (!).", + "rule_text": "(coq.parse-attributes A0 A1 A2) :- (std.map A1 (c0 \\ (c1 \\\n (c1 = supported-attribute c0))) A3), \n (A3 => parse-attributes.aux A0 A2), (!).", "rule_loc": [ "File", { @@ -1527,13 +1446,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -1548,8 +1465,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -1581,8 +1497,7 @@ "Inference", { "current_goal_id": 1138, - "current_goal_text": - "std.map\n [att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, att primitive_class bool, \n att primitive bool, att non_forgetful_inheritance bool, att hnf bool] (c0 \\\n c1 \\ c1 = supported-attribute c0) X10", + "current_goal_text": "std.map\n [att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, att primitive_class bool, \n att primitive bool, att non_forgetful_inheritance bool, att hnf bool] (c0 \\\n c1 \\ c1 = supported-attribute c0) X10", "current_goal_predicate": "std.map", "failed_attempts": [], "successful_attempts": [ @@ -1591,8 +1506,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -1618,13 +1532,11 @@ }, "siblings": [ { - "goal_text": - "X11 = supported-attribute (att short.type string)", + "goal_text": "X11 = supported-attribute (att short.type string)", "goal_id": 1139 }, { - "goal_text": - "std.map\n [att short.pack string, att infer attmap, att key string, \n att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, att primitive_class bool, \n att primitive bool, att non_forgetful_inheritance bool, att hnf bool] (c0 \\\n c1 \\ c1 = supported-attribute c0) X12", + "goal_text": "std.map\n [att short.pack string, att infer attmap, att key string, \n att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, att primitive_class bool, \n att primitive bool, att non_forgetful_inheritance bool, att hnf bool] (c0 \\\n c1 \\ c1 = supported-attribute c0) X12", "goal_id": 1140 } ], @@ -1637,8 +1549,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -1657,8 +1568,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -1677,8 +1587,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -1697,8 +1606,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -1717,8 +1625,7 @@ "rule": [ "UserRule", { - "rule_text": - "(coq.parse-attributes A0 A1 A2) :- (std.map A1 (c0 \\ (c1 \\\n (c1 = supported-attribute c0))) A3), \n (A3 => parse-attributes.aux A0 A2), (!).", + "rule_text": "(coq.parse-attributes A0 A1 A2) :- (std.map A1 (c0 \\ (c1 \\\n (c1 = supported-attribute c0))) A3), \n (A3 => parse-attributes.aux A0 A2), (!).", "rule_loc": [ "File", { @@ -1742,13 +1649,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -1763,8 +1668,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -1796,8 +1700,7 @@ "Inference", { "current_goal_id": 1139, - "current_goal_text": - "X11 = supported-attribute (att short.type string)", + "current_goal_text": "X11 = supported-attribute (att short.type string)", "current_goal_predicate": "=", "failed_attempts": [], "successful_attempts": [ @@ -1826,8 +1729,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -1846,8 +1748,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -1866,8 +1767,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -1886,8 +1786,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -1906,8 +1805,7 @@ "rule": [ "UserRule", { - "rule_text": - "(coq.parse-attributes A0 A1 A2) :- (std.map A1 (c0 \\ (c1 \\\n (c1 = supported-attribute c0))) A3), \n (A3 => parse-attributes.aux A0 A2), (!).", + "rule_text": "(coq.parse-attributes A0 A1 A2) :- (std.map A1 (c0 \\ (c1 \\\n (c1 = supported-attribute c0))) A3), \n (A3 => parse-attributes.aux A0 A2), (!).", "rule_loc": [ "File", { @@ -1931,13 +1829,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -1952,8 +1848,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -1985,8 +1880,7 @@ "Inference", { "current_goal_id": 1140, - "current_goal_text": - "std.map\n [att short.pack string, att infer attmap, att key string, \n att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, att primitive_class bool, \n att primitive bool, att non_forgetful_inheritance bool, att hnf bool] (c0 \\\n c1 \\ c1 = supported-attribute c0) X12", + "current_goal_text": "std.map\n [att short.pack string, att infer attmap, att key string, \n att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, att primitive_class bool, \n att primitive bool, att non_forgetful_inheritance bool, att hnf bool] (c0 \\\n c1 \\ c1 = supported-attribute c0) X12", "current_goal_predicate": "std.map", "failed_attempts": [], "successful_attempts": [ @@ -1995,8 +1889,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -2022,13 +1915,11 @@ }, "siblings": [ { - "goal_text": - "X13 = supported-attribute (att short.pack string)", + "goal_text": "X13 = supported-attribute (att short.pack string)", "goal_id": 1141 }, { - "goal_text": - "std.map\n [att infer attmap, att key string, att arg_sort bool, att log bool, \n att log.raw bool, att compress_coercions bool, att export bool, \n att skip string, att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] (c0 \\ c1 \\\n c1 = supported-attribute c0) X14", + "goal_text": "std.map\n [att infer attmap, att key string, att arg_sort bool, att log bool, \n att log.raw bool, att compress_coercions bool, att export bool, \n att skip string, att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] (c0 \\ c1 \\\n c1 = supported-attribute c0) X14", "goal_id": 1142 } ], @@ -2041,8 +1932,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -2061,8 +1951,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -2081,8 +1970,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -2101,8 +1989,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -2121,8 +2008,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -2141,8 +2027,7 @@ "rule": [ "UserRule", { - "rule_text": - "(coq.parse-attributes A0 A1 A2) :- (std.map A1 (c0 \\ (c1 \\\n (c1 = supported-attribute c0))) A3), \n (A3 => parse-attributes.aux A0 A2), (!).", + "rule_text": "(coq.parse-attributes A0 A1 A2) :- (std.map A1 (c0 \\ (c1 \\\n (c1 = supported-attribute c0))) A3), \n (A3 => parse-attributes.aux A0 A2), (!).", "rule_loc": [ "File", { @@ -2166,13 +2051,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -2187,8 +2070,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -2220,8 +2102,7 @@ "Inference", { "current_goal_id": 1141, - "current_goal_text": - "X13 = supported-attribute (att short.pack string)", + "current_goal_text": "X13 = supported-attribute (att short.pack string)", "current_goal_predicate": "=", "failed_attempts": [], "successful_attempts": [ @@ -2250,8 +2131,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -2270,8 +2150,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -2290,8 +2169,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -2310,8 +2188,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -2330,8 +2207,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -2350,8 +2226,7 @@ "rule": [ "UserRule", { - "rule_text": - "(coq.parse-attributes A0 A1 A2) :- (std.map A1 (c0 \\ (c1 \\\n (c1 = supported-attribute c0))) A3), \n (A3 => parse-attributes.aux A0 A2), (!).", + "rule_text": "(coq.parse-attributes A0 A1 A2) :- (std.map A1 (c0 \\ (c1 \\\n (c1 = supported-attribute c0))) A3), \n (A3 => parse-attributes.aux A0 A2), (!).", "rule_loc": [ "File", { @@ -2375,13 +2250,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -2396,8 +2269,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -2429,8 +2301,7 @@ "Inference", { "current_goal_id": 1142, - "current_goal_text": - "std.map\n [att infer attmap, att key string, att arg_sort bool, att log bool, \n att log.raw bool, att compress_coercions bool, att export bool, \n att skip string, att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] (c0 \\ c1 \\\n c1 = supported-attribute c0) X14", + "current_goal_text": "std.map\n [att infer attmap, att key string, att arg_sort bool, att log bool, \n att log.raw bool, att compress_coercions bool, att export bool, \n att skip string, att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] (c0 \\ c1 \\\n c1 = supported-attribute c0) X14", "current_goal_predicate": "std.map", "failed_attempts": [], "successful_attempts": [ @@ -2439,8 +2310,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -2470,8 +2340,7 @@ "goal_id": 1143 }, { - "goal_text": - "std.map\n [att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, att primitive_class bool, \n att primitive bool, att non_forgetful_inheritance bool, att hnf bool] (c0 \\\n c1 \\ c1 = supported-attribute c0) X16", + "goal_text": "std.map\n [att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, att primitive_class bool, \n att primitive bool, att non_forgetful_inheritance bool, att hnf bool] (c0 \\\n c1 \\ c1 = supported-attribute c0) X16", "goal_id": 1144 } ], @@ -2484,8 +2353,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -2504,8 +2372,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -2524,8 +2391,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -2544,8 +2410,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -2564,8 +2429,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -2584,8 +2448,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -2604,8 +2467,7 @@ "rule": [ "UserRule", { - "rule_text": - "(coq.parse-attributes A0 A1 A2) :- (std.map A1 (c0 \\ (c1 \\\n (c1 = supported-attribute c0))) A3), \n (A3 => parse-attributes.aux A0 A2), (!).", + "rule_text": "(coq.parse-attributes A0 A1 A2) :- (std.map A1 (c0 \\ (c1 \\\n (c1 = supported-attribute c0))) A3), \n (A3 => parse-attributes.aux A0 A2), (!).", "rule_loc": [ "File", { @@ -2629,13 +2491,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -2650,8 +2510,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -2709,8 +2568,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -2729,8 +2587,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -2749,8 +2606,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -2769,8 +2625,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -2789,8 +2644,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -2809,8 +2663,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -2829,8 +2682,7 @@ "rule": [ "UserRule", { - "rule_text": - "(coq.parse-attributes A0 A1 A2) :- (std.map A1 (c0 \\ (c1 \\\n (c1 = supported-attribute c0))) A3), \n (A3 => parse-attributes.aux A0 A2), (!).", + "rule_text": "(coq.parse-attributes A0 A1 A2) :- (std.map A1 (c0 \\ (c1 \\\n (c1 = supported-attribute c0))) A3), \n (A3 => parse-attributes.aux A0 A2), (!).", "rule_loc": [ "File", { @@ -2854,13 +2706,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -2875,8 +2725,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -2908,8 +2757,7 @@ "Inference", { "current_goal_id": 1144, - "current_goal_text": - "std.map\n [att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, att primitive_class bool, \n att primitive bool, att non_forgetful_inheritance bool, att hnf bool] (c0 \\\n c1 \\ c1 = supported-attribute c0) X16", + "current_goal_text": "std.map\n [att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, att primitive_class bool, \n att primitive bool, att non_forgetful_inheritance bool, att hnf bool] (c0 \\\n c1 \\ c1 = supported-attribute c0) X16", "current_goal_predicate": "std.map", "failed_attempts": [], "successful_attempts": [ @@ -2918,8 +2766,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -2949,8 +2796,7 @@ "goal_id": 1145 }, { - "goal_text": - "std.map\n [att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, att primitive_class bool, \n att primitive bool, att non_forgetful_inheritance bool, att hnf bool] (c0 \\\n c1 \\ c1 = supported-attribute c0) X18", + "goal_text": "std.map\n [att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, att primitive_class bool, \n att primitive bool, att non_forgetful_inheritance bool, att hnf bool] (c0 \\\n c1 \\ c1 = supported-attribute c0) X18", "goal_id": 1146 } ], @@ -2963,8 +2809,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -2983,8 +2828,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -3003,8 +2847,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -3023,8 +2866,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -3043,8 +2885,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -3063,8 +2904,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -3083,8 +2923,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -3103,8 +2942,7 @@ "rule": [ "UserRule", { - "rule_text": - "(coq.parse-attributes A0 A1 A2) :- (std.map A1 (c0 \\ (c1 \\\n (c1 = supported-attribute c0))) A3), \n (A3 => parse-attributes.aux A0 A2), (!).", + "rule_text": "(coq.parse-attributes A0 A1 A2) :- (std.map A1 (c0 \\ (c1 \\\n (c1 = supported-attribute c0))) A3), \n (A3 => parse-attributes.aux A0 A2), (!).", "rule_loc": [ "File", { @@ -3128,13 +2966,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -3149,8 +2985,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -3208,8 +3043,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -3228,8 +3062,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -3248,8 +3081,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -3268,8 +3100,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -3288,8 +3119,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -3308,8 +3138,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -3328,8 +3157,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -3348,8 +3176,7 @@ "rule": [ "UserRule", { - "rule_text": - "(coq.parse-attributes A0 A1 A2) :- (std.map A1 (c0 \\ (c1 \\\n (c1 = supported-attribute c0))) A3), \n (A3 => parse-attributes.aux A0 A2), (!).", + "rule_text": "(coq.parse-attributes A0 A1 A2) :- (std.map A1 (c0 \\ (c1 \\\n (c1 = supported-attribute c0))) A3), \n (A3 => parse-attributes.aux A0 A2), (!).", "rule_loc": [ "File", { @@ -3373,13 +3200,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -3394,8 +3219,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -3427,8 +3251,7 @@ "Inference", { "current_goal_id": 1146, - "current_goal_text": - "std.map\n [att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, att primitive_class bool, \n att primitive bool, att non_forgetful_inheritance bool, att hnf bool] (c0 \\\n c1 \\ c1 = supported-attribute c0) X18", + "current_goal_text": "std.map\n [att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, att primitive_class bool, \n att primitive bool, att non_forgetful_inheritance bool, att hnf bool] (c0 \\\n c1 \\ c1 = supported-attribute c0) X18", "current_goal_predicate": "std.map", "failed_attempts": [], "successful_attempts": [ @@ -3437,8 +3260,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -3468,8 +3290,7 @@ "goal_id": 1147 }, { - "goal_text": - "std.map\n [att log bool, att log.raw bool, att compress_coercions bool, \n att export bool, att skip string, att local bool, att fail bool, \n att doc string, att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] (c0 \\ c1 \\\n c1 = supported-attribute c0) X20", + "goal_text": "std.map\n [att log bool, att log.raw bool, att compress_coercions bool, \n att export bool, att skip string, att local bool, att fail bool, \n att doc string, att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] (c0 \\ c1 \\\n c1 = supported-attribute c0) X20", "goal_id": 1148 } ], @@ -3482,8 +3303,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -3502,8 +3322,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -3522,8 +3341,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -3542,8 +3360,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -3562,8 +3379,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -3582,8 +3398,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -3602,8 +3417,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -3622,8 +3436,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -3642,8 +3455,7 @@ "rule": [ "UserRule", { - "rule_text": - "(coq.parse-attributes A0 A1 A2) :- (std.map A1 (c0 \\ (c1 \\\n (c1 = supported-attribute c0))) A3), \n (A3 => parse-attributes.aux A0 A2), (!).", + "rule_text": "(coq.parse-attributes A0 A1 A2) :- (std.map A1 (c0 \\ (c1 \\\n (c1 = supported-attribute c0))) A3), \n (A3 => parse-attributes.aux A0 A2), (!).", "rule_loc": [ "File", { @@ -3667,13 +3479,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -3688,8 +3498,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -3749,8 +3558,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -3769,8 +3577,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -3789,8 +3596,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -3809,8 +3615,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -3829,8 +3634,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -3849,8 +3653,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -3869,8 +3672,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -3889,8 +3691,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -3909,8 +3710,7 @@ "rule": [ "UserRule", { - "rule_text": - "(coq.parse-attributes A0 A1 A2) :- (std.map A1 (c0 \\ (c1 \\\n (c1 = supported-attribute c0))) A3), \n (A3 => parse-attributes.aux A0 A2), (!).", + "rule_text": "(coq.parse-attributes A0 A1 A2) :- (std.map A1 (c0 \\ (c1 \\\n (c1 = supported-attribute c0))) A3), \n (A3 => parse-attributes.aux A0 A2), (!).", "rule_loc": [ "File", { @@ -3934,13 +3734,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -3955,8 +3753,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -3988,8 +3785,7 @@ "Inference", { "current_goal_id": 1148, - "current_goal_text": - "std.map\n [att log bool, att log.raw bool, att compress_coercions bool, \n att export bool, att skip string, att local bool, att fail bool, \n att doc string, att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] (c0 \\ c1 \\\n c1 = supported-attribute c0) X20", + "current_goal_text": "std.map\n [att log bool, att log.raw bool, att compress_coercions bool, \n att export bool, att skip string, att local bool, att fail bool, \n att doc string, att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] (c0 \\ c1 \\\n c1 = supported-attribute c0) X20", "current_goal_predicate": "std.map", "failed_attempts": [], "successful_attempts": [ @@ -3998,8 +3794,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -4029,8 +3824,7 @@ "goal_id": 1149 }, { - "goal_text": - "std.map\n [att log.raw bool, att compress_coercions bool, att export bool, \n att skip string, att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] (c0 \\ c1 \\\n c1 = supported-attribute c0) X22", + "goal_text": "std.map\n [att log.raw bool, att compress_coercions bool, att export bool, \n att skip string, att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] (c0 \\ c1 \\\n c1 = supported-attribute c0) X22", "goal_id": 1150 } ], @@ -4043,8 +3837,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -4063,8 +3856,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -4083,8 +3875,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -4103,8 +3894,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -4123,8 +3913,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -4143,8 +3932,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -4163,8 +3951,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -4183,8 +3970,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -4203,8 +3989,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -4223,8 +4008,7 @@ "rule": [ "UserRule", { - "rule_text": - "(coq.parse-attributes A0 A1 A2) :- (std.map A1 (c0 \\ (c1 \\\n (c1 = supported-attribute c0))) A3), \n (A3 => parse-attributes.aux A0 A2), (!).", + "rule_text": "(coq.parse-attributes A0 A1 A2) :- (std.map A1 (c0 \\ (c1 \\\n (c1 = supported-attribute c0))) A3), \n (A3 => parse-attributes.aux A0 A2), (!).", "rule_loc": [ "File", { @@ -4248,13 +4032,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -4269,8 +4051,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -4328,8 +4109,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -4348,8 +4128,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -4368,8 +4147,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -4388,8 +4166,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -4408,8 +4185,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -4428,8 +4204,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -4448,8 +4223,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -4468,8 +4242,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -4488,8 +4261,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -4508,8 +4280,7 @@ "rule": [ "UserRule", { - "rule_text": - "(coq.parse-attributes A0 A1 A2) :- (std.map A1 (c0 \\ (c1 \\\n (c1 = supported-attribute c0))) A3), \n (A3 => parse-attributes.aux A0 A2), (!).", + "rule_text": "(coq.parse-attributes A0 A1 A2) :- (std.map A1 (c0 \\ (c1 \\\n (c1 = supported-attribute c0))) A3), \n (A3 => parse-attributes.aux A0 A2), (!).", "rule_loc": [ "File", { @@ -4533,13 +4304,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -4554,8 +4323,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -4587,8 +4355,7 @@ "Inference", { "current_goal_id": 1150, - "current_goal_text": - "std.map\n [att log.raw bool, att compress_coercions bool, att export bool, \n att skip string, att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] (c0 \\ c1 \\\n c1 = supported-attribute c0) X22", + "current_goal_text": "std.map\n [att log.raw bool, att compress_coercions bool, att export bool, \n att skip string, att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] (c0 \\ c1 \\\n c1 = supported-attribute c0) X22", "current_goal_predicate": "std.map", "failed_attempts": [], "successful_attempts": [ @@ -4597,8 +4364,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -4628,8 +4394,7 @@ "goal_id": 1151 }, { - "goal_text": - "std.map\n [att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, att primitive_class bool, \n att primitive bool, att non_forgetful_inheritance bool, att hnf bool] (c0 \\\n c1 \\ c1 = supported-attribute c0) X24", + "goal_text": "std.map\n [att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, att primitive_class bool, \n att primitive bool, att non_forgetful_inheritance bool, att hnf bool] (c0 \\\n c1 \\ c1 = supported-attribute c0) X24", "goal_id": 1152 } ], @@ -4642,8 +4407,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -4662,8 +4426,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -4682,8 +4445,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -4702,8 +4464,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -4722,8 +4483,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -4742,8 +4502,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -4762,8 +4521,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -4782,8 +4540,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -4802,8 +4559,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -4822,8 +4578,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -4842,8 +4597,7 @@ "rule": [ "UserRule", { - "rule_text": - "(coq.parse-attributes A0 A1 A2) :- (std.map A1 (c0 \\ (c1 \\\n (c1 = supported-attribute c0))) A3), \n (A3 => parse-attributes.aux A0 A2), (!).", + "rule_text": "(coq.parse-attributes A0 A1 A2) :- (std.map A1 (c0 \\ (c1 \\\n (c1 = supported-attribute c0))) A3), \n (A3 => parse-attributes.aux A0 A2), (!).", "rule_loc": [ "File", { @@ -4867,13 +4621,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -4888,8 +4640,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -4947,8 +4698,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -4967,8 +4717,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -4987,8 +4736,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -5007,8 +4755,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -5027,8 +4774,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -5047,8 +4793,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -5067,8 +4812,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -5087,8 +4831,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -5107,8 +4850,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -5127,8 +4869,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -5147,8 +4888,7 @@ "rule": [ "UserRule", { - "rule_text": - "(coq.parse-attributes A0 A1 A2) :- (std.map A1 (c0 \\ (c1 \\\n (c1 = supported-attribute c0))) A3), \n (A3 => parse-attributes.aux A0 A2), (!).", + "rule_text": "(coq.parse-attributes A0 A1 A2) :- (std.map A1 (c0 \\ (c1 \\\n (c1 = supported-attribute c0))) A3), \n (A3 => parse-attributes.aux A0 A2), (!).", "rule_loc": [ "File", { @@ -5172,13 +4912,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -5193,8 +4931,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -5226,8 +4963,7 @@ "Inference", { "current_goal_id": 1152, - "current_goal_text": - "std.map\n [att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, att primitive_class bool, \n att primitive bool, att non_forgetful_inheritance bool, att hnf bool] (c0 \\\n c1 \\ c1 = supported-attribute c0) X24", + "current_goal_text": "std.map\n [att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, att primitive_class bool, \n att primitive bool, att non_forgetful_inheritance bool, att hnf bool] (c0 \\\n c1 \\ c1 = supported-attribute c0) X24", "current_goal_predicate": "std.map", "failed_attempts": [], "successful_attempts": [ @@ -5236,8 +4972,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -5263,13 +4998,11 @@ }, "siblings": [ { - "goal_text": - "X25 = supported-attribute (att compress_coercions bool)", + "goal_text": "X25 = supported-attribute (att compress_coercions bool)", "goal_id": 1153 }, { - "goal_text": - "std.map\n [att export bool, att skip string, att local bool, att fail bool, \n att doc string, att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] (c0 \\ c1 \\\n c1 = supported-attribute c0) X26", + "goal_text": "std.map\n [att export bool, att skip string, att local bool, att fail bool, \n att doc string, att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] (c0 \\ c1 \\\n c1 = supported-attribute c0) X26", "goal_id": 1154 } ], @@ -5282,8 +5015,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -5302,8 +5034,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -5322,8 +5053,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -5342,8 +5072,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -5362,8 +5091,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -5382,8 +5110,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -5402,8 +5129,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -5422,8 +5148,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -5442,8 +5167,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -5462,8 +5186,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -5482,8 +5205,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -5502,8 +5224,7 @@ "rule": [ "UserRule", { - "rule_text": - "(coq.parse-attributes A0 A1 A2) :- (std.map A1 (c0 \\ (c1 \\\n (c1 = supported-attribute c0))) A3), \n (A3 => parse-attributes.aux A0 A2), (!).", + "rule_text": "(coq.parse-attributes A0 A1 A2) :- (std.map A1 (c0 \\ (c1 \\\n (c1 = supported-attribute c0))) A3), \n (A3 => parse-attributes.aux A0 A2), (!).", "rule_loc": [ "File", { @@ -5527,13 +5248,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -5548,8 +5267,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -5581,8 +5299,7 @@ "Inference", { "current_goal_id": 1153, - "current_goal_text": - "X25 = supported-attribute (att compress_coercions bool)", + "current_goal_text": "X25 = supported-attribute (att compress_coercions bool)", "current_goal_predicate": "=", "failed_attempts": [], "successful_attempts": [ @@ -5611,8 +5328,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -5631,8 +5347,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -5651,8 +5366,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -5671,8 +5385,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -5691,8 +5404,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -5711,8 +5423,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -5731,8 +5442,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -5751,8 +5461,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -5771,8 +5480,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -5791,8 +5499,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -5811,8 +5518,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -5831,8 +5537,7 @@ "rule": [ "UserRule", { - "rule_text": - "(coq.parse-attributes A0 A1 A2) :- (std.map A1 (c0 \\ (c1 \\\n (c1 = supported-attribute c0))) A3), \n (A3 => parse-attributes.aux A0 A2), (!).", + "rule_text": "(coq.parse-attributes A0 A1 A2) :- (std.map A1 (c0 \\ (c1 \\\n (c1 = supported-attribute c0))) A3), \n (A3 => parse-attributes.aux A0 A2), (!).", "rule_loc": [ "File", { @@ -5856,13 +5561,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -5877,8 +5580,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -5910,8 +5612,7 @@ "Inference", { "current_goal_id": 1154, - "current_goal_text": - "std.map\n [att export bool, att skip string, att local bool, att fail bool, \n att doc string, att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] (c0 \\ c1 \\\n c1 = supported-attribute c0) X26", + "current_goal_text": "std.map\n [att export bool, att skip string, att local bool, att fail bool, \n att doc string, att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] (c0 \\ c1 \\\n c1 = supported-attribute c0) X26", "current_goal_predicate": "std.map", "failed_attempts": [], "successful_attempts": [ @@ -5920,8 +5621,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -5951,8 +5651,7 @@ "goal_id": 1155 }, { - "goal_text": - "std.map\n [att skip string, att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] (c0 \\ c1 \\\n c1 = supported-attribute c0) X28", + "goal_text": "std.map\n [att skip string, att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] (c0 \\ c1 \\\n c1 = supported-attribute c0) X28", "goal_id": 1156 } ], @@ -5965,8 +5664,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -5985,8 +5683,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -6005,8 +5702,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -6025,8 +5721,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -6045,8 +5740,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -6065,8 +5759,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -6085,8 +5778,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -6105,8 +5797,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -6125,8 +5816,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -6145,8 +5835,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -6165,8 +5854,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -6185,8 +5873,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -6205,8 +5892,7 @@ "rule": [ "UserRule", { - "rule_text": - "(coq.parse-attributes A0 A1 A2) :- (std.map A1 (c0 \\ (c1 \\\n (c1 = supported-attribute c0))) A3), \n (A3 => parse-attributes.aux A0 A2), (!).", + "rule_text": "(coq.parse-attributes A0 A1 A2) :- (std.map A1 (c0 \\ (c1 \\\n (c1 = supported-attribute c0))) A3), \n (A3 => parse-attributes.aux A0 A2), (!).", "rule_loc": [ "File", { @@ -6230,13 +5916,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -6251,8 +5935,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -6310,8 +5993,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -6330,8 +6012,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -6350,8 +6031,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -6370,8 +6050,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -6390,8 +6069,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -6410,8 +6088,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -6430,8 +6107,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -6450,8 +6126,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -6470,8 +6145,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -6490,8 +6164,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -6510,8 +6183,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -6530,8 +6202,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -6550,8 +6221,7 @@ "rule": [ "UserRule", { - "rule_text": - "(coq.parse-attributes A0 A1 A2) :- (std.map A1 (c0 \\ (c1 \\\n (c1 = supported-attribute c0))) A3), \n (A3 => parse-attributes.aux A0 A2), (!).", + "rule_text": "(coq.parse-attributes A0 A1 A2) :- (std.map A1 (c0 \\ (c1 \\\n (c1 = supported-attribute c0))) A3), \n (A3 => parse-attributes.aux A0 A2), (!).", "rule_loc": [ "File", { @@ -6575,13 +6245,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -6596,8 +6264,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -6629,8 +6296,7 @@ "Inference", { "current_goal_id": 1156, - "current_goal_text": - "std.map\n [att skip string, att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] (c0 \\ c1 \\\n c1 = supported-attribute c0) X28", + "current_goal_text": "std.map\n [att skip string, att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] (c0 \\ c1 \\\n c1 = supported-attribute c0) X28", "current_goal_predicate": "std.map", "failed_attempts": [], "successful_attempts": [ @@ -6639,8 +6305,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -6670,8 +6335,7 @@ "goal_id": 1157 }, { - "goal_text": - "std.map\n [att local bool, att fail bool, att doc string, att primitive_class bool, \n att primitive bool, att non_forgetful_inheritance bool, att hnf bool] (c0 \\\n c1 \\ c1 = supported-attribute c0) X30", + "goal_text": "std.map\n [att local bool, att fail bool, att doc string, att primitive_class bool, \n att primitive bool, att non_forgetful_inheritance bool, att hnf bool] (c0 \\\n c1 \\ c1 = supported-attribute c0) X30", "goal_id": 1158 } ], @@ -6684,8 +6348,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -6704,8 +6367,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -6724,8 +6386,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -6744,8 +6405,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -6764,8 +6424,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -6784,8 +6443,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -6804,8 +6462,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -6824,8 +6481,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -6844,8 +6500,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -6864,8 +6519,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -6884,8 +6538,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -6904,8 +6557,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -6924,8 +6576,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -6944,8 +6595,7 @@ "rule": [ "UserRule", { - "rule_text": - "(coq.parse-attributes A0 A1 A2) :- (std.map A1 (c0 \\ (c1 \\\n (c1 = supported-attribute c0))) A3), \n (A3 => parse-attributes.aux A0 A2), (!).", + "rule_text": "(coq.parse-attributes A0 A1 A2) :- (std.map A1 (c0 \\ (c1 \\\n (c1 = supported-attribute c0))) A3), \n (A3 => parse-attributes.aux A0 A2), (!).", "rule_loc": [ "File", { @@ -6969,13 +6619,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -6990,8 +6638,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -7049,8 +6696,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -7069,8 +6715,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -7089,8 +6734,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -7109,8 +6753,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -7129,8 +6772,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -7149,8 +6791,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -7169,8 +6810,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -7189,8 +6829,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -7209,8 +6848,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -7229,8 +6867,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -7249,8 +6886,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -7269,8 +6905,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -7289,8 +6924,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -7309,8 +6943,7 @@ "rule": [ "UserRule", { - "rule_text": - "(coq.parse-attributes A0 A1 A2) :- (std.map A1 (c0 \\ (c1 \\\n (c1 = supported-attribute c0))) A3), \n (A3 => parse-attributes.aux A0 A2), (!).", + "rule_text": "(coq.parse-attributes A0 A1 A2) :- (std.map A1 (c0 \\ (c1 \\\n (c1 = supported-attribute c0))) A3), \n (A3 => parse-attributes.aux A0 A2), (!).", "rule_loc": [ "File", { @@ -7334,13 +6967,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -7355,8 +6986,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -7388,8 +7018,7 @@ "Inference", { "current_goal_id": 1158, - "current_goal_text": - "std.map\n [att local bool, att fail bool, att doc string, att primitive_class bool, \n att primitive bool, att non_forgetful_inheritance bool, att hnf bool] (c0 \\\n c1 \\ c1 = supported-attribute c0) X30", + "current_goal_text": "std.map\n [att local bool, att fail bool, att doc string, att primitive_class bool, \n att primitive bool, att non_forgetful_inheritance bool, att hnf bool] (c0 \\\n c1 \\ c1 = supported-attribute c0) X30", "current_goal_predicate": "std.map", "failed_attempts": [], "successful_attempts": [ @@ -7398,8 +7027,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -7429,8 +7057,7 @@ "goal_id": 1159 }, { - "goal_text": - "std.map\n [att fail bool, att doc string, att primitive_class bool, \n att primitive bool, att non_forgetful_inheritance bool, att hnf bool] (c0 \\\n c1 \\ c1 = supported-attribute c0) X32", + "goal_text": "std.map\n [att fail bool, att doc string, att primitive_class bool, \n att primitive bool, att non_forgetful_inheritance bool, att hnf bool] (c0 \\\n c1 \\ c1 = supported-attribute c0) X32", "goal_id": 1160 } ], @@ -7443,8 +7070,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -7463,8 +7089,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -7483,8 +7108,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -7503,8 +7127,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -7523,8 +7146,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -7543,8 +7165,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -7563,8 +7184,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -7583,8 +7203,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -7603,8 +7222,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -7623,8 +7241,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -7643,8 +7260,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -7663,8 +7279,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -7683,8 +7298,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -7703,8 +7317,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -7723,8 +7336,7 @@ "rule": [ "UserRule", { - "rule_text": - "(coq.parse-attributes A0 A1 A2) :- (std.map A1 (c0 \\ (c1 \\\n (c1 = supported-attribute c0))) A3), \n (A3 => parse-attributes.aux A0 A2), (!).", + "rule_text": "(coq.parse-attributes A0 A1 A2) :- (std.map A1 (c0 \\ (c1 \\\n (c1 = supported-attribute c0))) A3), \n (A3 => parse-attributes.aux A0 A2), (!).", "rule_loc": [ "File", { @@ -7748,13 +7360,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -7769,8 +7379,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -7828,8 +7437,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -7848,8 +7456,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -7868,8 +7475,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -7888,8 +7494,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -7908,8 +7513,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -7928,8 +7532,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -7948,8 +7551,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -7968,8 +7570,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -7988,8 +7589,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -8008,8 +7608,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -8028,8 +7627,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -8048,8 +7646,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -8068,8 +7665,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -8088,8 +7684,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -8108,8 +7703,7 @@ "rule": [ "UserRule", { - "rule_text": - "(coq.parse-attributes A0 A1 A2) :- (std.map A1 (c0 \\ (c1 \\\n (c1 = supported-attribute c0))) A3), \n (A3 => parse-attributes.aux A0 A2), (!).", + "rule_text": "(coq.parse-attributes A0 A1 A2) :- (std.map A1 (c0 \\ (c1 \\\n (c1 = supported-attribute c0))) A3), \n (A3 => parse-attributes.aux A0 A2), (!).", "rule_loc": [ "File", { @@ -8133,13 +7727,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -8154,8 +7746,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -8187,8 +7778,7 @@ "Inference", { "current_goal_id": 1160, - "current_goal_text": - "std.map\n [att fail bool, att doc string, att primitive_class bool, \n att primitive bool, att non_forgetful_inheritance bool, att hnf bool] (c0 \\\n c1 \\ c1 = supported-attribute c0) X32", + "current_goal_text": "std.map\n [att fail bool, att doc string, att primitive_class bool, \n att primitive bool, att non_forgetful_inheritance bool, att hnf bool] (c0 \\\n c1 \\ c1 = supported-attribute c0) X32", "current_goal_predicate": "std.map", "failed_attempts": [], "successful_attempts": [ @@ -8197,8 +7787,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -8228,8 +7817,7 @@ "goal_id": 1161 }, { - "goal_text": - "std.map\n [att doc string, att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] (c0 \\ c1 \\\n c1 = supported-attribute c0) X34", + "goal_text": "std.map\n [att doc string, att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] (c0 \\ c1 \\\n c1 = supported-attribute c0) X34", "goal_id": 1162 } ], @@ -8242,8 +7830,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -8262,8 +7849,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -8282,8 +7868,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -8302,8 +7887,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -8322,8 +7906,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -8342,8 +7925,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -8362,8 +7944,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -8382,8 +7963,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -8402,8 +7982,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -8422,8 +8001,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -8442,8 +8020,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -8462,8 +8039,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -8482,8 +8058,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -8502,8 +8077,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -8522,8 +8096,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -8542,8 +8115,7 @@ "rule": [ "UserRule", { - "rule_text": - "(coq.parse-attributes A0 A1 A2) :- (std.map A1 (c0 \\ (c1 \\\n (c1 = supported-attribute c0))) A3), \n (A3 => parse-attributes.aux A0 A2), (!).", + "rule_text": "(coq.parse-attributes A0 A1 A2) :- (std.map A1 (c0 \\ (c1 \\\n (c1 = supported-attribute c0))) A3), \n (A3 => parse-attributes.aux A0 A2), (!).", "rule_loc": [ "File", { @@ -8567,13 +8139,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -8588,8 +8158,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -8647,8 +8216,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -8667,8 +8235,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -8687,8 +8254,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -8707,8 +8273,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -8727,8 +8292,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -8747,8 +8311,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -8767,8 +8330,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -8787,8 +8349,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -8807,8 +8368,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -8827,8 +8387,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -8847,8 +8406,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -8867,8 +8425,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -8887,8 +8444,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -8907,8 +8463,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -8927,8 +8482,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -8947,8 +8501,7 @@ "rule": [ "UserRule", { - "rule_text": - "(coq.parse-attributes A0 A1 A2) :- (std.map A1 (c0 \\ (c1 \\\n (c1 = supported-attribute c0))) A3), \n (A3 => parse-attributes.aux A0 A2), (!).", + "rule_text": "(coq.parse-attributes A0 A1 A2) :- (std.map A1 (c0 \\ (c1 \\\n (c1 = supported-attribute c0))) A3), \n (A3 => parse-attributes.aux A0 A2), (!).", "rule_loc": [ "File", { @@ -8972,13 +8525,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -8993,8 +8544,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -9026,8 +8576,7 @@ "Inference", { "current_goal_id": 1162, - "current_goal_text": - "std.map\n [att doc string, att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] (c0 \\ c1 \\\n c1 = supported-attribute c0) X34", + "current_goal_text": "std.map\n [att doc string, att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] (c0 \\ c1 \\\n c1 = supported-attribute c0) X34", "current_goal_predicate": "std.map", "failed_attempts": [], "successful_attempts": [ @@ -9036,8 +8585,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -9067,8 +8615,7 @@ "goal_id": 1163 }, { - "goal_text": - "std.map\n [att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] (c0 \\ c1 \\\n c1 = supported-attribute c0) X36", + "goal_text": "std.map\n [att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] (c0 \\ c1 \\\n c1 = supported-attribute c0) X36", "goal_id": 1164 } ], @@ -9081,8 +8628,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -9101,8 +8647,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -9121,8 +8666,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -9141,8 +8685,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -9161,8 +8704,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -9181,8 +8723,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -9201,8 +8742,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -9221,8 +8761,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -9241,8 +8780,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -9261,8 +8799,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -9281,8 +8818,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -9301,8 +8837,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -9321,8 +8856,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -9341,8 +8875,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -9361,8 +8894,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -9381,8 +8913,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -9401,8 +8932,7 @@ "rule": [ "UserRule", { - "rule_text": - "(coq.parse-attributes A0 A1 A2) :- (std.map A1 (c0 \\ (c1 \\\n (c1 = supported-attribute c0))) A3), \n (A3 => parse-attributes.aux A0 A2), (!).", + "rule_text": "(coq.parse-attributes A0 A1 A2) :- (std.map A1 (c0 \\ (c1 \\\n (c1 = supported-attribute c0))) A3), \n (A3 => parse-attributes.aux A0 A2), (!).", "rule_loc": [ "File", { @@ -9426,13 +8956,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -9447,8 +8975,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -9506,8 +9033,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -9526,8 +9052,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -9546,8 +9071,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -9566,8 +9090,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -9586,8 +9109,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -9606,8 +9128,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -9626,8 +9147,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -9646,8 +9166,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -9666,8 +9185,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -9686,8 +9204,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -9706,8 +9223,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -9726,8 +9242,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -9746,8 +9261,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -9766,8 +9280,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -9786,8 +9299,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -9806,8 +9318,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -9826,8 +9337,7 @@ "rule": [ "UserRule", { - "rule_text": - "(coq.parse-attributes A0 A1 A2) :- (std.map A1 (c0 \\ (c1 \\\n (c1 = supported-attribute c0))) A3), \n (A3 => parse-attributes.aux A0 A2), (!).", + "rule_text": "(coq.parse-attributes A0 A1 A2) :- (std.map A1 (c0 \\ (c1 \\\n (c1 = supported-attribute c0))) A3), \n (A3 => parse-attributes.aux A0 A2), (!).", "rule_loc": [ "File", { @@ -9851,13 +9361,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -9872,8 +9380,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -9905,8 +9412,7 @@ "Inference", { "current_goal_id": 1164, - "current_goal_text": - "std.map\n [att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] (c0 \\ c1 \\\n c1 = supported-attribute c0) X36", + "current_goal_text": "std.map\n [att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] (c0 \\ c1 \\\n c1 = supported-attribute c0) X36", "current_goal_predicate": "std.map", "failed_attempts": [], "successful_attempts": [ @@ -9915,8 +9421,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -9942,13 +9447,11 @@ }, "siblings": [ { - "goal_text": - "X37 = supported-attribute (att primitive_class bool)", + "goal_text": "X37 = supported-attribute (att primitive_class bool)", "goal_id": 1165 }, { - "goal_text": - "std.map\n [att primitive bool, att non_forgetful_inheritance bool, att hnf bool] (c0 \\\n c1 \\ c1 = supported-attribute c0) X38", + "goal_text": "std.map\n [att primitive bool, att non_forgetful_inheritance bool, att hnf bool] (c0 \\\n c1 \\ c1 = supported-attribute c0) X38", "goal_id": 1166 } ], @@ -9961,8 +9464,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -9981,8 +9483,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -10001,8 +9502,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -10021,8 +9521,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -10041,8 +9540,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -10061,8 +9559,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -10081,8 +9578,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -10101,8 +9597,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -10121,8 +9616,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -10141,8 +9635,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -10161,8 +9654,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -10181,8 +9673,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -10201,8 +9692,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -10221,8 +9711,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -10241,8 +9730,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -10261,8 +9749,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -10281,8 +9768,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -10301,8 +9787,7 @@ "rule": [ "UserRule", { - "rule_text": - "(coq.parse-attributes A0 A1 A2) :- (std.map A1 (c0 \\ (c1 \\\n (c1 = supported-attribute c0))) A3), \n (A3 => parse-attributes.aux A0 A2), (!).", + "rule_text": "(coq.parse-attributes A0 A1 A2) :- (std.map A1 (c0 \\ (c1 \\\n (c1 = supported-attribute c0))) A3), \n (A3 => parse-attributes.aux A0 A2), (!).", "rule_loc": [ "File", { @@ -10326,13 +9811,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -10347,8 +9830,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -10380,8 +9862,7 @@ "Inference", { "current_goal_id": 1165, - "current_goal_text": - "X37 = supported-attribute (att primitive_class bool)", + "current_goal_text": "X37 = supported-attribute (att primitive_class bool)", "current_goal_predicate": "=", "failed_attempts": [], "successful_attempts": [ @@ -10410,8 +9891,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -10430,8 +9910,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -10450,8 +9929,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -10470,8 +9948,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -10490,8 +9967,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -10510,8 +9986,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -10530,8 +10005,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -10550,8 +10024,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -10570,8 +10043,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -10590,8 +10062,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -10610,8 +10081,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -10630,8 +10100,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -10650,8 +10119,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -10670,8 +10138,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -10690,8 +10157,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -10710,8 +10176,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -10730,8 +10195,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -10750,8 +10214,7 @@ "rule": [ "UserRule", { - "rule_text": - "(coq.parse-attributes A0 A1 A2) :- (std.map A1 (c0 \\ (c1 \\\n (c1 = supported-attribute c0))) A3), \n (A3 => parse-attributes.aux A0 A2), (!).", + "rule_text": "(coq.parse-attributes A0 A1 A2) :- (std.map A1 (c0 \\ (c1 \\\n (c1 = supported-attribute c0))) A3), \n (A3 => parse-attributes.aux A0 A2), (!).", "rule_loc": [ "File", { @@ -10775,13 +10238,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -10796,8 +10257,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -10829,8 +10289,7 @@ "Inference", { "current_goal_id": 1166, - "current_goal_text": - "std.map\n [att primitive bool, att non_forgetful_inheritance bool, att hnf bool] (c0 \\\n c1 \\ c1 = supported-attribute c0) X38", + "current_goal_text": "std.map\n [att primitive bool, att non_forgetful_inheritance bool, att hnf bool] (c0 \\\n c1 \\ c1 = supported-attribute c0) X38", "current_goal_predicate": "std.map", "failed_attempts": [], "successful_attempts": [ @@ -10839,8 +10298,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -10870,8 +10328,7 @@ "goal_id": 1167 }, { - "goal_text": - "std.map [att non_forgetful_inheritance bool, att hnf bool] (c0 \\ c1 \\\n c1 = supported-attribute c0) X40", + "goal_text": "std.map [att non_forgetful_inheritance bool, att hnf bool] (c0 \\ c1 \\\n c1 = supported-attribute c0) X40", "goal_id": 1168 } ], @@ -10884,8 +10341,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -10904,8 +10360,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -10924,8 +10379,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -10944,8 +10398,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -10964,8 +10417,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -10984,8 +10436,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -11004,8 +10455,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -11024,8 +10474,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -11044,8 +10493,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -11064,8 +10512,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -11084,8 +10531,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -11104,8 +10550,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -11124,8 +10569,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -11144,8 +10588,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -11164,8 +10607,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -11184,8 +10626,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -11204,8 +10645,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -11224,8 +10664,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -11244,8 +10683,7 @@ "rule": [ "UserRule", { - "rule_text": - "(coq.parse-attributes A0 A1 A2) :- (std.map A1 (c0 \\ (c1 \\\n (c1 = supported-attribute c0))) A3), \n (A3 => parse-attributes.aux A0 A2), (!).", + "rule_text": "(coq.parse-attributes A0 A1 A2) :- (std.map A1 (c0 \\ (c1 \\\n (c1 = supported-attribute c0))) A3), \n (A3 => parse-attributes.aux A0 A2), (!).", "rule_loc": [ "File", { @@ -11269,13 +10707,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -11290,8 +10726,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -11351,8 +10786,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -11371,8 +10805,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -11391,8 +10824,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -11411,8 +10843,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -11431,8 +10862,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -11451,8 +10881,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -11471,8 +10900,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -11491,8 +10919,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -11511,8 +10938,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -11531,8 +10957,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -11551,8 +10976,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -11571,8 +10995,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -11591,8 +11014,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -11611,8 +11033,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -11631,8 +11052,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -11651,8 +11071,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -11671,8 +11090,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -11691,8 +11109,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -11711,8 +11128,7 @@ "rule": [ "UserRule", { - "rule_text": - "(coq.parse-attributes A0 A1 A2) :- (std.map A1 (c0 \\ (c1 \\\n (c1 = supported-attribute c0))) A3), \n (A3 => parse-attributes.aux A0 A2), (!).", + "rule_text": "(coq.parse-attributes A0 A1 A2) :- (std.map A1 (c0 \\ (c1 \\\n (c1 = supported-attribute c0))) A3), \n (A3 => parse-attributes.aux A0 A2), (!).", "rule_loc": [ "File", { @@ -11736,13 +11152,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -11757,8 +11171,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -11790,8 +11203,7 @@ "Inference", { "current_goal_id": 1168, - "current_goal_text": - "std.map [att non_forgetful_inheritance bool, att hnf bool] (c0 \\ c1 \\\n c1 = supported-attribute c0) X40", + "current_goal_text": "std.map [att non_forgetful_inheritance bool, att hnf bool] (c0 \\ c1 \\\n c1 = supported-attribute c0) X40", "current_goal_predicate": "std.map", "failed_attempts": [], "successful_attempts": [ @@ -11800,8 +11212,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -11824,13 +11235,11 @@ }, "siblings": [ { - "goal_text": - "X41 = supported-attribute (att non_forgetful_inheritance bool)", + "goal_text": "X41 = supported-attribute (att non_forgetful_inheritance bool)", "goal_id": 1169 }, { - "goal_text": - "std.map [att hnf bool] (c0 \\ c1 \\ c1 = supported-attribute c0) X42", + "goal_text": "std.map [att hnf bool] (c0 \\ c1 \\ c1 = supported-attribute c0) X42", "goal_id": 1170 } ], @@ -11843,8 +11252,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -11863,8 +11271,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -11883,8 +11290,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -11903,8 +11309,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -11923,8 +11328,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -11943,8 +11347,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -11963,8 +11366,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -11983,8 +11385,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -12003,8 +11404,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -12023,8 +11423,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -12043,8 +11442,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -12063,8 +11461,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -12083,8 +11480,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -12103,8 +11499,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -12123,8 +11518,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -12143,8 +11537,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -12163,8 +11556,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -12183,8 +11575,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -12203,8 +11594,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -12223,8 +11613,7 @@ "rule": [ "UserRule", { - "rule_text": - "(coq.parse-attributes A0 A1 A2) :- (std.map A1 (c0 \\ (c1 \\\n (c1 = supported-attribute c0))) A3), \n (A3 => parse-attributes.aux A0 A2), (!).", + "rule_text": "(coq.parse-attributes A0 A1 A2) :- (std.map A1 (c0 \\ (c1 \\\n (c1 = supported-attribute c0))) A3), \n (A3 => parse-attributes.aux A0 A2), (!).", "rule_loc": [ "File", { @@ -12248,13 +11637,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -12269,8 +11656,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -12302,8 +11688,7 @@ "Inference", { "current_goal_id": 1169, - "current_goal_text": - "X41 = supported-attribute (att non_forgetful_inheritance bool)", + "current_goal_text": "X41 = supported-attribute (att non_forgetful_inheritance bool)", "current_goal_predicate": "=", "failed_attempts": [], "successful_attempts": [ @@ -12332,8 +11717,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -12352,8 +11736,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -12372,8 +11755,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -12392,8 +11774,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -12412,8 +11793,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -12432,8 +11812,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -12452,8 +11831,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -12472,8 +11850,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -12492,8 +11869,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -12512,8 +11888,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -12532,8 +11907,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -12552,8 +11926,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -12572,8 +11945,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -12592,8 +11964,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -12612,8 +11983,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -12632,8 +12002,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -12652,8 +12021,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -12672,8 +12040,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -12692,8 +12059,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -12712,8 +12078,7 @@ "rule": [ "UserRule", { - "rule_text": - "(coq.parse-attributes A0 A1 A2) :- (std.map A1 (c0 \\ (c1 \\\n (c1 = supported-attribute c0))) A3), \n (A3 => parse-attributes.aux A0 A2), (!).", + "rule_text": "(coq.parse-attributes A0 A1 A2) :- (std.map A1 (c0 \\ (c1 \\\n (c1 = supported-attribute c0))) A3), \n (A3 => parse-attributes.aux A0 A2), (!).", "rule_loc": [ "File", { @@ -12737,13 +12102,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -12758,8 +12121,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -12791,8 +12153,7 @@ "Inference", { "current_goal_id": 1170, - "current_goal_text": - "std.map [att hnf bool] (c0 \\ c1 \\ c1 = supported-attribute c0) X42", + "current_goal_text": "std.map [att hnf bool] (c0 \\ c1 \\ c1 = supported-attribute c0) X42", "current_goal_predicate": "std.map", "failed_attempts": [], "successful_attempts": [ @@ -12801,8 +12162,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -12829,8 +12189,7 @@ "goal_id": 1171 }, { - "goal_text": - "std.map [] (c0 \\ c1 \\ c1 = supported-attribute c0) X44", + "goal_text": "std.map [] (c0 \\ c1 \\ c1 = supported-attribute c0) X44", "goal_id": 1172 } ], @@ -12843,8 +12202,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -12863,8 +12221,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -12883,8 +12240,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -12903,8 +12259,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -12923,8 +12278,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -12943,8 +12297,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -12963,8 +12316,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -12983,8 +12335,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -13003,8 +12354,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -13023,8 +12373,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -13043,8 +12392,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -13063,8 +12411,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -13083,8 +12430,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -13103,8 +12449,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -13123,8 +12468,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -13143,8 +12487,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -13163,8 +12506,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -13183,8 +12525,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -13203,8 +12544,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -13223,8 +12563,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -13243,8 +12582,7 @@ "rule": [ "UserRule", { - "rule_text": - "(coq.parse-attributes A0 A1 A2) :- (std.map A1 (c0 \\ (c1 \\\n (c1 = supported-attribute c0))) A3), \n (A3 => parse-attributes.aux A0 A2), (!).", + "rule_text": "(coq.parse-attributes A0 A1 A2) :- (std.map A1 (c0 \\ (c1 \\\n (c1 = supported-attribute c0))) A3), \n (A3 => parse-attributes.aux A0 A2), (!).", "rule_loc": [ "File", { @@ -13268,13 +12606,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -13289,8 +12625,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -13348,8 +12683,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -13368,8 +12702,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -13388,8 +12721,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -13408,8 +12740,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -13428,8 +12759,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -13448,8 +12778,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -13468,8 +12797,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -13488,8 +12816,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -13508,8 +12835,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -13528,8 +12854,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -13548,8 +12873,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -13568,8 +12892,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -13588,8 +12911,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -13608,8 +12930,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -13628,8 +12949,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -13648,8 +12968,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -13668,8 +12987,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -13688,8 +13006,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -13708,8 +13025,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -13728,8 +13044,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -13748,8 +13063,7 @@ "rule": [ "UserRule", { - "rule_text": - "(coq.parse-attributes A0 A1 A2) :- (std.map A1 (c0 \\ (c1 \\\n (c1 = supported-attribute c0))) A3), \n (A3 => parse-attributes.aux A0 A2), (!).", + "rule_text": "(coq.parse-attributes A0 A1 A2) :- (std.map A1 (c0 \\ (c1 \\\n (c1 = supported-attribute c0))) A3), \n (A3 => parse-attributes.aux A0 A2), (!).", "rule_loc": [ "File", { @@ -13773,13 +13087,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -13794,8 +13106,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -13827,8 +13138,7 @@ "Inference", { "current_goal_id": 1172, - "current_goal_text": - "std.map [] (c0 \\ c1 \\ c1 = supported-attribute c0) X44", + "current_goal_text": "std.map [] (c0 \\ c1 \\ c1 = supported-attribute c0) X44", "current_goal_predicate": "std.map", "failed_attempts": [], "successful_attempts": [ @@ -13880,8 +13190,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -13900,8 +13209,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -13920,8 +13228,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -13940,8 +13247,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -13960,8 +13266,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -13980,8 +13285,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -14000,8 +13304,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -14020,8 +13323,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -14040,8 +13342,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -14060,8 +13361,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -14080,8 +13380,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -14100,8 +13399,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -14120,8 +13418,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -14140,8 +13437,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -14160,8 +13456,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -14180,8 +13475,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -14200,8 +13494,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -14220,8 +13513,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -14240,8 +13532,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -14260,8 +13551,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -14280,8 +13570,7 @@ "rule": [ "UserRule", { - "rule_text": - "(coq.parse-attributes A0 A1 A2) :- (std.map A1 (c0 \\ (c1 \\\n (c1 = supported-attribute c0))) A3), \n (A3 => parse-attributes.aux A0 A2), (!).", + "rule_text": "(coq.parse-attributes A0 A1 A2) :- (std.map A1 (c0 \\ (c1 \\\n (c1 = supported-attribute c0))) A3), \n (A3 => parse-attributes.aux A0 A2), (!).", "rule_loc": [ "File", { @@ -14305,13 +13594,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -14326,8 +13613,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -14359,8 +13645,7 @@ "Inference", { "current_goal_id": 1131, - "current_goal_text": - "[supported-attribute (att verbose bool), \n supported-attribute (att mathcomp bool), \n supported-attribute (att mathcomp.axiom string), \n supported-attribute (att short.type string), \n supported-attribute (att short.pack string), \n supported-attribute (att infer attmap), \n supported-attribute (att key string), \n supported-attribute (att arg_sort bool), \n supported-attribute (att log bool), supported-attribute (att log.raw bool), \n supported-attribute (att compress_coercions bool), \n supported-attribute (att export bool), \n supported-attribute (att skip string), \n supported-attribute (att local bool), supported-attribute (att fail bool), \n supported-attribute (att doc string), \n supported-attribute (att primitive_class bool), \n supported-attribute (att primitive bool), \n supported-attribute (att non_forgetful_inheritance bool), \n supported-attribute (att hnf bool)] =>\n parse-attributes.aux\n [attribute elpi.loc \n (leaf-loc File \"(stdin)\", line 1, column 2, character 3:)] X3", + "current_goal_text": "[supported-attribute (att verbose bool), \n supported-attribute (att mathcomp bool), \n supported-attribute (att mathcomp.axiom string), \n supported-attribute (att short.type string), \n supported-attribute (att short.pack string), \n supported-attribute (att infer attmap), \n supported-attribute (att key string), \n supported-attribute (att arg_sort bool), \n supported-attribute (att log bool), supported-attribute (att log.raw bool), \n supported-attribute (att compress_coercions bool), \n supported-attribute (att export bool), \n supported-attribute (att skip string), \n supported-attribute (att local bool), supported-attribute (att fail bool), \n supported-attribute (att doc string), \n supported-attribute (att primitive_class bool), \n supported-attribute (att primitive bool), \n supported-attribute (att non_forgetful_inheritance bool), \n supported-attribute (att hnf bool)] =>\n parse-attributes.aux\n [attribute elpi.loc \n (leaf-loc File \"(stdin)\", line 1, column 2, character 3:)] X3", "current_goal_predicate": "=>", "failed_attempts": [], "successful_attempts": [ @@ -14371,8 +13656,7 @@ }, "siblings": [ { - "goal_text": - "parse-attributes.aux\n [attribute elpi.loc \n (leaf-loc File \"(stdin)\", line 1, column 2, character 3:)] X3", + "goal_text": "parse-attributes.aux\n [attribute elpi.loc \n (leaf-loc File \"(stdin)\", line 1, column 2, character 3:)] X3", "goal_id": 1173 } ], @@ -14390,8 +13674,7 @@ "rule": [ "UserRule", { - "rule_text": - "(coq.parse-attributes A0 A1 A2) :- (std.map A1 (c0 \\ (c1 \\\n (c1 = supported-attribute c0))) A3), \n (A3 => parse-attributes.aux A0 A2), (!).", + "rule_text": "(coq.parse-attributes A0 A1 A2) :- (std.map A1 (c0 \\ (c1 \\\n (c1 = supported-attribute c0))) A3), \n (A3 => parse-attributes.aux A0 A2), (!).", "rule_loc": [ "File", { @@ -14415,13 +13698,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -14436,8 +13717,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -14469,16 +13749,14 @@ "Inference", { "current_goal_id": 1173, - "current_goal_text": - "parse-attributes.aux\n [attribute elpi.loc \n (leaf-loc File \"(stdin)\", line 1, column 2, character 3:)] X3", + "current_goal_text": "parse-attributes.aux\n [attribute elpi.loc \n (leaf-loc File \"(stdin)\", line 1, column 2, character 3:)] X3", "current_goal_predicate": "parse-attributes.aux", "failed_attempts": [ { "rule": [ "UserRule", { - "rule_text": - "(parse-attributes.aux [attribute A0 (node A1) | A2] A3 A4) :- (if (A3 = ) \n (A5 = A0) \n (A5 is\n A3 ^ . ^ A0)), \n (supported-attribute (att A5 attmap)), (!), \n (parse-attributes.aux A2 A3 A6), \n (pi (c0 \\ (supported-attribute (att c0 string) :- !)) =>\n parse-attributes.aux A1 A7), (std.append A6 [get-option A5 A7] A4).", + "rule_text": "(parse-attributes.aux [attribute A0 (node A1) | A2] A3 A4) :- (if (A3 = ) \n (A5 = A0) \n (A5 is\n A3 ^ . ^ A0)), \n (supported-attribute (att A5 attmap)), (!), \n (parse-attributes.aux A2 A3 A6), \n (pi (c0 \\ (supported-attribute (att c0 string) :- !)) =>\n parse-attributes.aux A1 A7), (std.append A6 [get-option A5 A7] A4).", "rule_loc": [ "File", { @@ -14502,8 +13780,7 @@ "rule": [ "UserRule", { - "rule_text": - "(parse-attributes.aux [attribute A0 (node A1) | A2] A3 A4) :- (!), \n (parse-attributes.aux A2 A3 A5), \n (if (A3 = ) (A6 = A0) (A6 is A3 ^ . ^ A0)), \n (parse-attributes.aux A1 A6 A7), (std.append A5 A7 A4).", + "rule_text": "(parse-attributes.aux [attribute A0 (node A1) | A2] A3 A4) :- (!), \n (parse-attributes.aux A2 A3 A5), \n (if (A3 = ) (A6 = A0) (A6 is A3 ^ . ^ A0)), \n (parse-attributes.aux A1 A6 A7), (std.append A5 A7 A4).", "rule_loc": [ "File", { @@ -14527,8 +13804,7 @@ "rule": [ "UserRule", { - "rule_text": - "(parse-attributes.aux [attribute A0 (leaf-str A1) | A2] A3 A4) :- (!), \n (if (A3 = ) (A5 = A0) (A5 is A3 ^ . ^ A0)), \n (coq.valid-str-attribute A5 A1 A6 A7), \n (if (A7 = error A8) (coq.error A8) true), \n (if (A6 = some A9) (A4 = [get-option A5 A9 | A10]) (A4 = A10)), \n (parse-attributes.aux A2 A3 A10).", + "rule_text": "(parse-attributes.aux [attribute A0 (leaf-str A1) | A2] A3 A4) :- (!), \n (if (A3 = ) (A5 = A0) (A5 is A3 ^ . ^ A0)), \n (coq.valid-str-attribute A5 A1 A6 A7), \n (if (A7 = error A8) (coq.error A8) true), \n (if (A6 = some A9) (A4 = [get-option A5 A9 | A10]) (A4 = A10)), \n (parse-attributes.aux A2 A3 A10).", "rule_loc": [ "File", { @@ -14552,8 +13828,7 @@ "rule": [ "UserRule", { - "rule_text": - "(parse-attributes.aux [attribute A0 (leaf-loc A1) | A2] A3 A4) :- (!), \n (if (A3 = ) (A5 = A0) (A5 is A3 ^ . ^ A0)), \n (coq.valid-loc-attribute A5 A1 A6), \n (if (A6 = error A7) (coq.error A7) true), (A4 = [get-option A5 A1 | A8]), \n (parse-attributes.aux A2 A3 A8).", + "rule_text": "(parse-attributes.aux [attribute A0 (leaf-loc A1) | A2] A3 A4) :- (!), \n (if (A3 = ) (A5 = A0) (A5 is A3 ^ . ^ A0)), \n (coq.valid-loc-attribute A5 A1 A6), \n (if (A6 = error A7) (coq.error A7) true), (A4 = [get-option A5 A1 | A8]), \n (parse-attributes.aux A2 A3 A8).", "rule_loc": [ "File", { @@ -14583,8 +13858,7 @@ "rule": [ "UserRule", { - "rule_text": - "(parse-attributes.aux [attribute A0 (node A1) | A2] A3 A4) :- (if (A3 = ) \n (A7 = A0) \n (A7 is\n A3 ^ . ^ A0)), \n (supported-attribute (att A7 attmap)), (!), \n (parse-attributes.aux A2 A3 A5), \n (pi (c0 \\ (supported-attribute (att c0 string) :- !)) =>\n parse-attributes.aux A1 A6), (std.append A5 [get-option A7 A6] A4).", + "rule_text": "(parse-attributes.aux [attribute A0 (node A1) | A2] A3 A4) :- (if (A3 = ) \n (A7 = A0) \n (A7 is\n A3 ^ . ^ A0)), \n (supported-attribute (att A7 attmap)), (!), \n (parse-attributes.aux A2 A3 A5), \n (pi (c0 \\ (supported-attribute (att c0 string) :- !)) =>\n parse-attributes.aux A1 A6), (std.append A5 [get-option A7 A6] A4).", "rule_loc": [ "Context", 6 ] } ], @@ -14599,13 +13873,11 @@ "siblings": [ { "goal_text": "!", "goal_id": 1174 }, { - "goal_text": - "if ( = ) (X45 = elpi.loc) (X45 is ^ . ^ elpi.loc)", + "goal_text": "if ( = ) (X45 = elpi.loc) (X45 is ^ . ^ elpi.loc)", "goal_id": 1175 }, { - "goal_text": - "coq.valid-loc-attribute X45 File \"(stdin)\", line 1, column 2, character 3: \n X46", + "goal_text": "coq.valid-loc-attribute X45 File \"(stdin)\", line 1, column 2, character 3: \n X46", "goal_id": 1176 }, { @@ -14613,8 +13885,7 @@ "goal_id": 1177 }, { - "goal_text": - "X3 = [get-option X45 File \"(stdin)\", line 1, column 2, character 3: | X48]", + "goal_text": "X3 = [get-option X45 File \"(stdin)\", line 1, column 2, character 3: | X48]", "goal_id": 1178 }, { @@ -14631,8 +13902,7 @@ "rule": [ "UserRule", { - "rule_text": - "(parse-attributes.aux [attribute A0 (node A1) | A2] A3 A4) :- (if (A3 = ) \n (A7 = A0) \n (A7 is\n A3 ^ . ^ A0)), \n (supported-attribute (att A7 attmap)), (!), \n (parse-attributes.aux A2 A3 A5), \n (pi (c0 \\ (supported-attribute (att c0 string) :- !)) =>\n parse-attributes.aux A1 A6), (std.append A5 [get-option A7 A6] A4).", + "rule_text": "(parse-attributes.aux [attribute A0 (node A1) | A2] A3 A4) :- (if (A3 = ) \n (A7 = A0) \n (A7 is\n A3 ^ . ^ A0)), \n (supported-attribute (att A7 attmap)), (!), \n (parse-attributes.aux A2 A3 A5), \n (pi (c0 \\ (supported-attribute (att c0 string) :- !)) =>\n parse-attributes.aux A1 A6), (std.append A5 [get-option A7 A6] A4).", "rule_loc": [ "Context", 6 ] } ], @@ -14648,8 +13918,7 @@ "rule": [ "UserRule", { - "rule_text": - "(coq.parse-attributes A0 A1 A2) :- (std.map A1 (c0 \\ (c1 \\\n (c1 = supported-attribute c0))) A3), \n (A3 => parse-attributes.aux A0 A2), (!).", + "rule_text": "(coq.parse-attributes A0 A1 A2) :- (std.map A1 (c0 \\ (c1 \\\n (c1 = supported-attribute c0))) A3), \n (A3 => parse-attributes.aux A0 A2), (!).", "rule_loc": [ "File", { @@ -14673,13 +13942,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -14694,8 +13961,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -14733,8 +13999,7 @@ "Inference", { "current_goal_id": 1175, - "current_goal_text": - "if ( = ) (X45 = elpi.loc) (X45 is ^ . ^ elpi.loc)", + "current_goal_text": "if ( = ) (X45 = elpi.loc) (X45 is ^ . ^ elpi.loc)", "current_goal_predicate": "if", "failed_attempts": [], "successful_attempts": [ @@ -14793,8 +14058,7 @@ "rule": [ "UserRule", { - "rule_text": - "(parse-attributes.aux [attribute A0 (node A1) | A2] A3 A4) :- (if (A3 = ) \n (A7 = A0) \n (A7 is\n A3 ^ . ^ A0)), \n (supported-attribute (att A7 attmap)), (!), \n (parse-attributes.aux A2 A3 A5), \n (pi (c0 \\ (supported-attribute (att c0 string) :- !)) =>\n parse-attributes.aux A1 A6), (std.append A5 [get-option A7 A6] A4).", + "rule_text": "(parse-attributes.aux [attribute A0 (node A1) | A2] A3 A4) :- (if (A3 = ) \n (A7 = A0) \n (A7 is\n A3 ^ . ^ A0)), \n (supported-attribute (att A7 attmap)), (!), \n (parse-attributes.aux A2 A3 A5), \n (pi (c0 \\ (supported-attribute (att c0 string) :- !)) =>\n parse-attributes.aux A1 A6), (std.append A5 [get-option A7 A6] A4).", "rule_loc": [ "Context", 6 ] } ], @@ -14810,8 +14074,7 @@ "rule": [ "UserRule", { - "rule_text": - "(coq.parse-attributes A0 A1 A2) :- (std.map A1 (c0 \\ (c1 \\\n (c1 = supported-attribute c0))) A3), \n (A3 => parse-attributes.aux A0 A2), (!).", + "rule_text": "(coq.parse-attributes A0 A1 A2) :- (std.map A1 (c0 \\ (c1 \\\n (c1 = supported-attribute c0))) A3), \n (A3 => parse-attributes.aux A0 A2), (!).", "rule_loc": [ "File", { @@ -14835,13 +14098,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -14856,8 +14117,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -14932,8 +14192,7 @@ "rule": [ "UserRule", { - "rule_text": - "(parse-attributes.aux [attribute A0 (node A1) | A2] A3 A4) :- (if (A3 = ) \n (A7 = A0) \n (A7 is\n A3 ^ . ^ A0)), \n (supported-attribute (att A7 attmap)), (!), \n (parse-attributes.aux A2 A3 A5), \n (pi (c0 \\ (supported-attribute (att c0 string) :- !)) =>\n parse-attributes.aux A1 A6), (std.append A5 [get-option A7 A6] A4).", + "rule_text": "(parse-attributes.aux [attribute A0 (node A1) | A2] A3 A4) :- (if (A3 = ) \n (A7 = A0) \n (A7 is\n A3 ^ . ^ A0)), \n (supported-attribute (att A7 attmap)), (!), \n (parse-attributes.aux A2 A3 A5), \n (pi (c0 \\ (supported-attribute (att c0 string) :- !)) =>\n parse-attributes.aux A1 A6), (std.append A5 [get-option A7 A6] A4).", "rule_loc": [ "Context", 6 ] } ], @@ -14949,8 +14208,7 @@ "rule": [ "UserRule", { - "rule_text": - "(coq.parse-attributes A0 A1 A2) :- (std.map A1 (c0 \\ (c1 \\\n (c1 = supported-attribute c0))) A3), \n (A3 => parse-attributes.aux A0 A2), (!).", + "rule_text": "(coq.parse-attributes A0 A1 A2) :- (std.map A1 (c0 \\ (c1 \\\n (c1 = supported-attribute c0))) A3), \n (A3 => parse-attributes.aux A0 A2), (!).", "rule_loc": [ "File", { @@ -14974,13 +14232,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -14995,8 +14251,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -15031,8 +14286,7 @@ "cut_victims": [ { "cut_branch_for_goal": { - "goal_text": - "if ( = ) (X45 = elpi.loc) (X45 is ^ . ^ elpi.loc)", + "goal_text": "if ( = ) (X45 = elpi.loc) (X45 is ^ . ^ elpi.loc)", "goal_id": 1175 }, "cut_branch": { @@ -15103,8 +14357,7 @@ "rule": [ "UserRule", { - "rule_text": - "(parse-attributes.aux [attribute A0 (node A1) | A2] A3 A4) :- (if (A3 = ) \n (A7 = A0) \n (A7 is\n A3 ^ . ^ A0)), \n (supported-attribute (att A7 attmap)), (!), \n (parse-attributes.aux A2 A3 A5), \n (pi (c0 \\ (supported-attribute (att c0 string) :- !)) =>\n parse-attributes.aux A1 A6), (std.append A5 [get-option A7 A6] A4).", + "rule_text": "(parse-attributes.aux [attribute A0 (node A1) | A2] A3 A4) :- (if (A3 = ) \n (A7 = A0) \n (A7 is\n A3 ^ . ^ A0)), \n (supported-attribute (att A7 attmap)), (!), \n (parse-attributes.aux A2 A3 A5), \n (pi (c0 \\ (supported-attribute (att c0 string) :- !)) =>\n parse-attributes.aux A1 A6), (std.append A5 [get-option A7 A6] A4).", "rule_loc": [ "Context", 6 ] } ], @@ -15120,8 +14373,7 @@ "rule": [ "UserRule", { - "rule_text": - "(coq.parse-attributes A0 A1 A2) :- (std.map A1 (c0 \\ (c1 \\\n (c1 = supported-attribute c0))) A3), \n (A3 => parse-attributes.aux A0 A2), (!).", + "rule_text": "(coq.parse-attributes A0 A1 A2) :- (std.map A1 (c0 \\ (c1 \\\n (c1 = supported-attribute c0))) A3), \n (A3 => parse-attributes.aux A0 A2), (!).", "rule_loc": [ "File", { @@ -15145,13 +14397,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -15166,8 +14416,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -15199,8 +14448,7 @@ "Inference", { "current_goal_id": 1176, - "current_goal_text": - "coq.valid-loc-attribute elpi.loc \n File \"(stdin)\", line 1, column 2, character 3: X46", + "current_goal_text": "coq.valid-loc-attribute elpi.loc \n File \"(stdin)\", line 1, column 2, character 3: X46", "current_goal_predicate": "coq.valid-loc-attribute", "failed_attempts": [], "successful_attempts": [ @@ -15209,8 +14457,7 @@ "rule": [ "UserRule", { - "rule_text": - "(coq.valid-loc-attribute A0 A1 A2) :- (if (supported-attribute (att A0 loc)) \n (if (primitive? A1 Loc.t) (A2 = ok) \n ((std.any->string A1 A4 ,\n calc\n (Attribute ^ A0 ^\n takes a loc, got ^ A4) A5)\n , A2 = error A5)) \n (if\n (supported-attribute\n att-ignore-unknown) (A2 = ok) \n (calc\n (Attribute ^ A0 ^\n is not supported) A3 ,\n A2 = error A3))).", + "rule_text": "(coq.valid-loc-attribute A0 A1 A2) :- (if (supported-attribute (att A0 loc)) \n (if (primitive? A1 Loc.t) (A2 = ok) \n ((std.any->string A1 A4 ,\n calc\n (Attribute ^ A0 ^\n takes a loc, got ^ A4) A5)\n , A2 = error A5)) \n (if\n (supported-attribute\n att-ignore-unknown) (A2 = ok) \n (calc\n (Attribute ^ A0 ^\n is not supported) A3 ,\n A2 = error A3))).", "rule_loc": [ "File", { @@ -15233,8 +14480,7 @@ }, "siblings": [ { - "goal_text": - "if (supported-attribute (att elpi.loc loc)) \n (if (primitive? File \"(stdin)\", line 1, column 2, character 3: Loc.t) \n (X46 = ok) \n ((std.any->string File \"(stdin)\", line 1, column 2, character 3: X49 ,\n calc (Attribute ^ elpi.loc ^ takes a loc, got ^ X49) X50) ,\n X46 = error X50)) \n (if (supported-attribute att-ignore-unknown) (X46 = ok) \n (calc (Attribute ^ elpi.loc ^ is not supported) X51 , X46 = error X51))", + "goal_text": "if (supported-attribute (att elpi.loc loc)) \n (if (primitive? File \"(stdin)\", line 1, column 2, character 3: Loc.t) \n (X46 = ok) \n ((std.any->string File \"(stdin)\", line 1, column 2, character 3: X49 ,\n calc (Attribute ^ elpi.loc ^ takes a loc, got ^ X49) X50) ,\n X46 = error X50)) \n (if (supported-attribute att-ignore-unknown) (X46 = ok) \n (calc (Attribute ^ elpi.loc ^ is not supported) X51 , X46 = error X51))", "goal_id": 1183 } ], @@ -15247,8 +14493,7 @@ "rule": [ "UserRule", { - "rule_text": - "(coq.valid-loc-attribute A0 A1 A2) :- (if (supported-attribute (att A0 loc)) \n (if (primitive? A1 Loc.t) (A2 = ok) \n ((std.any->string A1 A4 ,\n calc\n (Attribute ^ A0 ^\n takes a loc, got ^ A4) A5)\n , A2 = error A5)) \n (if\n (supported-attribute\n att-ignore-unknown) (A2 = ok) \n (calc\n (Attribute ^ A0 ^\n is not supported) A3 ,\n A2 = error A3))).", + "rule_text": "(coq.valid-loc-attribute A0 A1 A2) :- (if (supported-attribute (att A0 loc)) \n (if (primitive? A1 Loc.t) (A2 = ok) \n ((std.any->string A1 A4 ,\n calc\n (Attribute ^ A0 ^\n takes a loc, got ^ A4) A5)\n , A2 = error A5)) \n (if\n (supported-attribute\n att-ignore-unknown) (A2 = ok) \n (calc\n (Attribute ^ A0 ^\n is not supported) A3 ,\n A2 = error A3))).", "rule_loc": [ "File", { @@ -15267,8 +14512,7 @@ "rule": [ "UserRule", { - "rule_text": - "(parse-attributes.aux [attribute A0 (node A1) | A2] A3 A4) :- (if (A3 = ) \n (A7 = A0) \n (A7 is\n A3 ^ . ^ A0)), \n (supported-attribute (att A7 attmap)), (!), \n (parse-attributes.aux A2 A3 A5), \n (pi (c0 \\ (supported-attribute (att c0 string) :- !)) =>\n parse-attributes.aux A1 A6), (std.append A5 [get-option A7 A6] A4).", + "rule_text": "(parse-attributes.aux [attribute A0 (node A1) | A2] A3 A4) :- (if (A3 = ) \n (A7 = A0) \n (A7 is\n A3 ^ . ^ A0)), \n (supported-attribute (att A7 attmap)), (!), \n (parse-attributes.aux A2 A3 A5), \n (pi (c0 \\ (supported-attribute (att c0 string) :- !)) =>\n parse-attributes.aux A1 A6), (std.append A5 [get-option A7 A6] A4).", "rule_loc": [ "Context", 6 ] } ], @@ -15284,8 +14528,7 @@ "rule": [ "UserRule", { - "rule_text": - "(coq.parse-attributes A0 A1 A2) :- (std.map A1 (c0 \\ (c1 \\\n (c1 = supported-attribute c0))) A3), \n (A3 => parse-attributes.aux A0 A2), (!).", + "rule_text": "(coq.parse-attributes A0 A1 A2) :- (std.map A1 (c0 \\ (c1 \\\n (c1 = supported-attribute c0))) A3), \n (A3 => parse-attributes.aux A0 A2), (!).", "rule_loc": [ "File", { @@ -15309,13 +14552,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -15330,8 +14571,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -15363,8 +14603,7 @@ "Inference", { "current_goal_id": 1183, - "current_goal_text": - "if (supported-attribute (att elpi.loc loc)) \n (if (primitive? File \"(stdin)\", line 1, column 2, character 3: Loc.t) \n (X46 = ok) \n ((std.any->string File \"(stdin)\", line 1, column 2, character 3: X49 ,\n calc (Attribute ^ elpi.loc ^ takes a loc, got ^ X49) X50) ,\n X46 = error X50)) \n (if (supported-attribute att-ignore-unknown) (X46 = ok) \n (calc (Attribute ^ elpi.loc ^ is not supported) X51 , X46 = error X51))", + "current_goal_text": "if (supported-attribute (att elpi.loc loc)) \n (if (primitive? File \"(stdin)\", line 1, column 2, character 3: Loc.t) \n (X46 = ok) \n ((std.any->string File \"(stdin)\", line 1, column 2, character 3: X49 ,\n calc (Attribute ^ elpi.loc ^ takes a loc, got ^ X49) X50) ,\n X46 = error X50)) \n (if (supported-attribute att-ignore-unknown) (X46 = ok) \n (calc (Attribute ^ elpi.loc ^ is not supported) X51 , X46 = error X51))", "current_goal_predicate": "if", "failed_attempts": [], "successful_attempts": [ @@ -15400,8 +14639,7 @@ }, { "goal_text": "!", "goal_id": 1185 }, { - "goal_text": - "if (primitive? File \"(stdin)\", line 1, column 2, character 3: Loc.t) \n (X46 = ok) \n ((std.any->string File \"(stdin)\", line 1, column 2, character 3: X49 ,\n calc (Attribute ^ elpi.loc ^ takes a loc, got ^ X49) X50) ,\n X46 = error X50)", + "goal_text": "if (primitive? File \"(stdin)\", line 1, column 2, character 3: Loc.t) \n (X46 = ok) \n ((std.any->string File \"(stdin)\", line 1, column 2, character 3: X49 ,\n calc (Attribute ^ elpi.loc ^ takes a loc, got ^ X49) X50) ,\n X46 = error X50)", "goal_id": 1186 } ], @@ -15433,8 +14671,7 @@ "rule": [ "UserRule", { - "rule_text": - "(coq.valid-loc-attribute A0 A1 A2) :- (if (supported-attribute (att A0 loc)) \n (if (primitive? A1 Loc.t) (A2 = ok) \n ((std.any->string A1 A4 ,\n calc\n (Attribute ^ A0 ^\n takes a loc, got ^ A4) A5)\n , A2 = error A5)) \n (if\n (supported-attribute\n att-ignore-unknown) (A2 = ok) \n (calc\n (Attribute ^ A0 ^\n is not supported) A3 ,\n A2 = error A3))).", + "rule_text": "(coq.valid-loc-attribute A0 A1 A2) :- (if (supported-attribute (att A0 loc)) \n (if (primitive? A1 Loc.t) (A2 = ok) \n ((std.any->string A1 A4 ,\n calc\n (Attribute ^ A0 ^\n takes a loc, got ^ A4) A5)\n , A2 = error A5)) \n (if\n (supported-attribute\n att-ignore-unknown) (A2 = ok) \n (calc\n (Attribute ^ A0 ^\n is not supported) A3 ,\n A2 = error A3))).", "rule_loc": [ "File", { @@ -15453,8 +14690,7 @@ "rule": [ "UserRule", { - "rule_text": - "(parse-attributes.aux [attribute A0 (node A1) | A2] A3 A4) :- (if (A3 = ) \n (A7 = A0) \n (A7 is\n A3 ^ . ^ A0)), \n (supported-attribute (att A7 attmap)), (!), \n (parse-attributes.aux A2 A3 A5), \n (pi (c0 \\ (supported-attribute (att c0 string) :- !)) =>\n parse-attributes.aux A1 A6), (std.append A5 [get-option A7 A6] A4).", + "rule_text": "(parse-attributes.aux [attribute A0 (node A1) | A2] A3 A4) :- (if (A3 = ) \n (A7 = A0) \n (A7 is\n A3 ^ . ^ A0)), \n (supported-attribute (att A7 attmap)), (!), \n (parse-attributes.aux A2 A3 A5), \n (pi (c0 \\ (supported-attribute (att c0 string) :- !)) =>\n parse-attributes.aux A1 A6), (std.append A5 [get-option A7 A6] A4).", "rule_loc": [ "Context", 6 ] } ], @@ -15470,8 +14706,7 @@ "rule": [ "UserRule", { - "rule_text": - "(coq.parse-attributes A0 A1 A2) :- (std.map A1 (c0 \\ (c1 \\\n (c1 = supported-attribute c0))) A3), \n (A3 => parse-attributes.aux A0 A2), (!).", + "rule_text": "(coq.parse-attributes A0 A1 A2) :- (std.map A1 (c0 \\ (c1 \\\n (c1 = supported-attribute c0))) A3), \n (A3 => parse-attributes.aux A0 A2), (!).", "rule_loc": [ "File", { @@ -15495,13 +14730,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -15516,8 +14749,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -15568,8 +14800,7 @@ "rule": [ "UserRule", { - "rule_text": - "(supported-attribute (att mathcomp.axiom string)) :- .", + "rule_text": "(supported-attribute (att mathcomp.axiom string)) :- .", "rule_loc": [ "Context", 49 ] } ], @@ -15584,8 +14815,7 @@ "rule": [ "UserRule", { - "rule_text": - "(supported-attribute (att short.type string)) :- .", + "rule_text": "(supported-attribute (att short.type string)) :- .", "rule_loc": [ "Context", 49 ] } ], @@ -15597,8 +14827,7 @@ "rule": [ "UserRule", { - "rule_text": - "(supported-attribute (att short.pack string)) :- .", + "rule_text": "(supported-attribute (att short.pack string)) :- .", "rule_loc": [ "Context", 49 ] } ], @@ -15670,8 +14899,7 @@ "rule": [ "UserRule", { - "rule_text": - "(supported-attribute (att compress_coercions bool)) :- .", + "rule_text": "(supported-attribute (att compress_coercions bool)) :- .", "rule_loc": [ "Context", 49 ] } ], @@ -15746,8 +14974,7 @@ "rule": [ "UserRule", { - "rule_text": - "(supported-attribute (att primitive_class bool)) :- .", + "rule_text": "(supported-attribute (att primitive_class bool)) :- .", "rule_loc": [ "Context", 49 ] } ], @@ -15762,8 +14989,7 @@ "rule": [ "UserRule", { - "rule_text": - "(supported-attribute (att primitive bool)) :- .", + "rule_text": "(supported-attribute (att primitive bool)) :- .", "rule_loc": [ "Context", 49 ] } ], @@ -15775,8 +15001,7 @@ "rule": [ "UserRule", { - "rule_text": - "(supported-attribute (att non_forgetful_inheritance bool)) :- .", + "rule_text": "(supported-attribute (att non_forgetful_inheritance bool)) :- .", "rule_loc": [ "Context", 49 ] } ], @@ -15824,8 +15049,7 @@ "rule": [ "UserRule", { - "rule_text": - "(supported-attribute (att verbose bool)) :- .", + "rule_text": "(supported-attribute (att verbose bool)) :- .", "rule_loc": [ "Context", 49 ] } ], @@ -15873,8 +15097,7 @@ "rule": [ "UserRule", { - "rule_text": - "(coq.valid-loc-attribute A0 A1 A2) :- (if (supported-attribute (att A0 loc)) \n (if (primitive? A1 Loc.t) (A2 = ok) \n ((std.any->string A1 A4 ,\n calc\n (Attribute ^ A0 ^\n takes a loc, got ^ A4) A5)\n , A2 = error A5)) \n (if\n (supported-attribute\n att-ignore-unknown) (A2 = ok) \n (calc\n (Attribute ^ A0 ^\n is not supported) A3 ,\n A2 = error A3))).", + "rule_text": "(coq.valid-loc-attribute A0 A1 A2) :- (if (supported-attribute (att A0 loc)) \n (if (primitive? A1 Loc.t) (A2 = ok) \n ((std.any->string A1 A4 ,\n calc\n (Attribute ^ A0 ^\n takes a loc, got ^ A4) A5)\n , A2 = error A5)) \n (if\n (supported-attribute\n att-ignore-unknown) (A2 = ok) \n (calc\n (Attribute ^ A0 ^\n is not supported) A3 ,\n A2 = error A3))).", "rule_loc": [ "File", { @@ -15893,8 +15116,7 @@ "rule": [ "UserRule", { - "rule_text": - "(parse-attributes.aux [attribute A0 (node A1) | A2] A3 A4) :- (if (A3 = ) \n (A7 = A0) \n (A7 is\n A3 ^ . ^ A0)), \n (supported-attribute (att A7 attmap)), (!), \n (parse-attributes.aux A2 A3 A5), \n (pi (c0 \\ (supported-attribute (att c0 string) :- !)) =>\n parse-attributes.aux A1 A6), (std.append A5 [get-option A7 A6] A4).", + "rule_text": "(parse-attributes.aux [attribute A0 (node A1) | A2] A3 A4) :- (if (A3 = ) \n (A7 = A0) \n (A7 is\n A3 ^ . ^ A0)), \n (supported-attribute (att A7 attmap)), (!), \n (parse-attributes.aux A2 A3 A5), \n (pi (c0 \\ (supported-attribute (att c0 string) :- !)) =>\n parse-attributes.aux A1 A6), (std.append A5 [get-option A7 A6] A4).", "rule_loc": [ "Context", 6 ] } ], @@ -15910,8 +15132,7 @@ "rule": [ "UserRule", { - "rule_text": - "(coq.parse-attributes A0 A1 A2) :- (std.map A1 (c0 \\ (c1 \\\n (c1 = supported-attribute c0))) A3), \n (A3 => parse-attributes.aux A0 A2), (!).", + "rule_text": "(coq.parse-attributes A0 A1 A2) :- (std.map A1 (c0 \\ (c1 \\\n (c1 = supported-attribute c0))) A3), \n (A3 => parse-attributes.aux A0 A2), (!).", "rule_loc": [ "File", { @@ -15935,13 +15156,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -15956,8 +15175,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -15996,8 +15214,7 @@ "goal_id": 1184 }, "cut_branch": { - "rule_text": - "(supported-attribute (att A0 string)) :- (rex_match ^elpi\\. A0).", + "rule_text": "(supported-attribute (att A0 string)) :- (rex_match ^elpi\\. A0).", "rule_loc": [ "File", { @@ -16011,8 +15228,7 @@ }, { "cut_branch_for_goal": { - "goal_text": - "if (supported-attribute (att elpi.loc loc)) \n (if (primitive? File \"(stdin)\", line 1, column 2, character 3: Loc.t) \n (X46 = ok) \n ((std.any->string File \"(stdin)\", line 1, column 2, character 3: X49 ,\n calc (Attribute ^ elpi.loc ^ takes a loc, got ^ X49) X50) ,\n X46 = error X50)) \n (if (supported-attribute att-ignore-unknown) (X46 = ok) \n (calc (Attribute ^ elpi.loc ^ is not supported) X51 , X46 = error X51))", + "goal_text": "if (supported-attribute (att elpi.loc loc)) \n (if (primitive? File \"(stdin)\", line 1, column 2, character 3: Loc.t) \n (X46 = ok) \n ((std.any->string File \"(stdin)\", line 1, column 2, character 3: X49 ,\n calc (Attribute ^ elpi.loc ^ takes a loc, got ^ X49) X50) ,\n X46 = error X50)) \n (if (supported-attribute att-ignore-unknown) (X46 = ok) \n (calc (Attribute ^ elpi.loc ^ is not supported) X51 , X46 = error X51))", "goal_id": 1183 }, "cut_branch": { @@ -16040,8 +15256,7 @@ "Inference", { "current_goal_id": 1186, - "current_goal_text": - "if (primitive? File \"(stdin)\", line 1, column 2, character 3: Loc.t) \n (X46 = ok) \n ((std.any->string File \"(stdin)\", line 1, column 2, character 3: X49 ,\n calc (Attribute ^ elpi.loc ^ takes a loc, got ^ X49) X50) ,\n X46 = error X50)", + "current_goal_text": "if (primitive? File \"(stdin)\", line 1, column 2, character 3: Loc.t) \n (X46 = ok) \n ((std.any->string File \"(stdin)\", line 1, column 2, character 3: X49 ,\n calc (Attribute ^ elpi.loc ^ takes a loc, got ^ X49) X50) ,\n X46 = error X50)", "current_goal_predicate": "if", "failed_attempts": [], "successful_attempts": [ @@ -16072,8 +15287,7 @@ }, "siblings": [ { - "goal_text": - "primitive? File \"(stdin)\", line 1, column 2, character 3: Loc.t", + "goal_text": "primitive? File \"(stdin)\", line 1, column 2, character 3: Loc.t", "goal_id": 1187 }, { "goal_text": "!", "goal_id": 1188 }, @@ -16126,8 +15340,7 @@ "rule": [ "UserRule", { - "rule_text": - "(coq.valid-loc-attribute A0 A1 A2) :- (if (supported-attribute (att A0 loc)) \n (if (primitive? A1 Loc.t) (A2 = ok) \n ((std.any->string A1 A4 ,\n calc\n (Attribute ^ A0 ^\n takes a loc, got ^ A4) A5)\n , A2 = error A5)) \n (if\n (supported-attribute\n att-ignore-unknown) (A2 = ok) \n (calc\n (Attribute ^ A0 ^\n is not supported) A3 ,\n A2 = error A3))).", + "rule_text": "(coq.valid-loc-attribute A0 A1 A2) :- (if (supported-attribute (att A0 loc)) \n (if (primitive? A1 Loc.t) (A2 = ok) \n ((std.any->string A1 A4 ,\n calc\n (Attribute ^ A0 ^\n takes a loc, got ^ A4) A5)\n , A2 = error A5)) \n (if\n (supported-attribute\n att-ignore-unknown) (A2 = ok) \n (calc\n (Attribute ^ A0 ^\n is not supported) A3 ,\n A2 = error A3))).", "rule_loc": [ "File", { @@ -16146,8 +15359,7 @@ "rule": [ "UserRule", { - "rule_text": - "(parse-attributes.aux [attribute A0 (node A1) | A2] A3 A4) :- (if (A3 = ) \n (A7 = A0) \n (A7 is\n A3 ^ . ^ A0)), \n (supported-attribute (att A7 attmap)), (!), \n (parse-attributes.aux A2 A3 A5), \n (pi (c0 \\ (supported-attribute (att c0 string) :- !)) =>\n parse-attributes.aux A1 A6), (std.append A5 [get-option A7 A6] A4).", + "rule_text": "(parse-attributes.aux [attribute A0 (node A1) | A2] A3 A4) :- (if (A3 = ) \n (A7 = A0) \n (A7 is\n A3 ^ . ^ A0)), \n (supported-attribute (att A7 attmap)), (!), \n (parse-attributes.aux A2 A3 A5), \n (pi (c0 \\ (supported-attribute (att c0 string) :- !)) =>\n parse-attributes.aux A1 A6), (std.append A5 [get-option A7 A6] A4).", "rule_loc": [ "Context", 6 ] } ], @@ -16163,8 +15375,7 @@ "rule": [ "UserRule", { - "rule_text": - "(coq.parse-attributes A0 A1 A2) :- (std.map A1 (c0 \\ (c1 \\\n (c1 = supported-attribute c0))) A3), \n (A3 => parse-attributes.aux A0 A2), (!).", + "rule_text": "(coq.parse-attributes A0 A1 A2) :- (std.map A1 (c0 \\ (c1 \\\n (c1 = supported-attribute c0))) A3), \n (A3 => parse-attributes.aux A0 A2), (!).", "rule_loc": [ "File", { @@ -16188,13 +15399,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -16209,8 +15418,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -16242,8 +15450,7 @@ "Inference", { "current_goal_id": 1187, - "current_goal_text": - "primitive? File \"(stdin)\", line 1, column 2, character 3: Loc.t", + "current_goal_text": "primitive? File \"(stdin)\", line 1, column 2, character 3: Loc.t", "current_goal_predicate": "primitive?", "failed_attempts": [], "successful_attempts": [ @@ -16252,8 +15459,7 @@ "rule": [ "UserRule", { - "rule_text": - "(primitive? A0 A1) :- (is_cdata A0 (ctype A1)).", + "rule_text": "(primitive? A0 A1) :- (is_cdata A0 (ctype A1)).", "rule_loc": [ "File", { @@ -16275,8 +15481,7 @@ }, "siblings": [ { - "goal_text": - "is_cdata File \"(stdin)\", line 1, column 2, character 3: (ctype Loc.t)", + "goal_text": "is_cdata File \"(stdin)\", line 1, column 2, character 3: (ctype Loc.t)", "goal_id": 1190 } ], @@ -16289,8 +15494,7 @@ "rule": [ "UserRule", { - "rule_text": - "(primitive? A0 A1) :- (is_cdata A0 (ctype A1)).", + "rule_text": "(primitive? A0 A1) :- (is_cdata A0 (ctype A1)).", "rule_loc": [ "File", { @@ -16347,8 +15551,7 @@ "rule": [ "UserRule", { - "rule_text": - "(coq.valid-loc-attribute A0 A1 A2) :- (if (supported-attribute (att A0 loc)) \n (if (primitive? A1 Loc.t) (A2 = ok) \n ((std.any->string A1 A4 ,\n calc\n (Attribute ^ A0 ^\n takes a loc, got ^ A4) A5)\n , A2 = error A5)) \n (if\n (supported-attribute\n att-ignore-unknown) (A2 = ok) \n (calc\n (Attribute ^ A0 ^\n is not supported) A3 ,\n A2 = error A3))).", + "rule_text": "(coq.valid-loc-attribute A0 A1 A2) :- (if (supported-attribute (att A0 loc)) \n (if (primitive? A1 Loc.t) (A2 = ok) \n ((std.any->string A1 A4 ,\n calc\n (Attribute ^ A0 ^\n takes a loc, got ^ A4) A5)\n , A2 = error A5)) \n (if\n (supported-attribute\n att-ignore-unknown) (A2 = ok) \n (calc\n (Attribute ^ A0 ^\n is not supported) A3 ,\n A2 = error A3))).", "rule_loc": [ "File", { @@ -16367,8 +15570,7 @@ "rule": [ "UserRule", { - "rule_text": - "(parse-attributes.aux [attribute A0 (node A1) | A2] A3 A4) :- (if (A3 = ) \n (A7 = A0) \n (A7 is\n A3 ^ . ^ A0)), \n (supported-attribute (att A7 attmap)), (!), \n (parse-attributes.aux A2 A3 A5), \n (pi (c0 \\ (supported-attribute (att c0 string) :- !)) =>\n parse-attributes.aux A1 A6), (std.append A5 [get-option A7 A6] A4).", + "rule_text": "(parse-attributes.aux [attribute A0 (node A1) | A2] A3 A4) :- (if (A3 = ) \n (A7 = A0) \n (A7 is\n A3 ^ . ^ A0)), \n (supported-attribute (att A7 attmap)), (!), \n (parse-attributes.aux A2 A3 A5), \n (pi (c0 \\ (supported-attribute (att c0 string) :- !)) =>\n parse-attributes.aux A1 A6), (std.append A5 [get-option A7 A6] A4).", "rule_loc": [ "Context", 6 ] } ], @@ -16384,8 +15586,7 @@ "rule": [ "UserRule", { - "rule_text": - "(coq.parse-attributes A0 A1 A2) :- (std.map A1 (c0 \\ (c1 \\\n (c1 = supported-attribute c0))) A3), \n (A3 => parse-attributes.aux A0 A2), (!).", + "rule_text": "(coq.parse-attributes A0 A1 A2) :- (std.map A1 (c0 \\ (c1 \\\n (c1 = supported-attribute c0))) A3), \n (A3 => parse-attributes.aux A0 A2), (!).", "rule_loc": [ "File", { @@ -16409,13 +15610,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -16430,8 +15629,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -16463,8 +15661,7 @@ "Inference", { "current_goal_id": 1190, - "current_goal_text": - "is_cdata File \"(stdin)\", line 1, column 2, character 3: (ctype Loc.t)", + "current_goal_text": "is_cdata File \"(stdin)\", line 1, column 2, character 3: (ctype Loc.t)", "current_goal_predicate": "is_cdata", "failed_attempts": [], "successful_attempts": [ @@ -16490,8 +15687,7 @@ "rule": [ "UserRule", { - "rule_text": - "(primitive? A0 A1) :- (is_cdata A0 (ctype A1)).", + "rule_text": "(primitive? A0 A1) :- (is_cdata A0 (ctype A1)).", "rule_loc": [ "File", { @@ -16548,8 +15744,7 @@ "rule": [ "UserRule", { - "rule_text": - "(coq.valid-loc-attribute A0 A1 A2) :- (if (supported-attribute (att A0 loc)) \n (if (primitive? A1 Loc.t) (A2 = ok) \n ((std.any->string A1 A4 ,\n calc\n (Attribute ^ A0 ^\n takes a loc, got ^ A4) A5)\n , A2 = error A5)) \n (if\n (supported-attribute\n att-ignore-unknown) (A2 = ok) \n (calc\n (Attribute ^ A0 ^\n is not supported) A3 ,\n A2 = error A3))).", + "rule_text": "(coq.valid-loc-attribute A0 A1 A2) :- (if (supported-attribute (att A0 loc)) \n (if (primitive? A1 Loc.t) (A2 = ok) \n ((std.any->string A1 A4 ,\n calc\n (Attribute ^ A0 ^\n takes a loc, got ^ A4) A5)\n , A2 = error A5)) \n (if\n (supported-attribute\n att-ignore-unknown) (A2 = ok) \n (calc\n (Attribute ^ A0 ^\n is not supported) A3 ,\n A2 = error A3))).", "rule_loc": [ "File", { @@ -16568,8 +15763,7 @@ "rule": [ "UserRule", { - "rule_text": - "(parse-attributes.aux [attribute A0 (node A1) | A2] A3 A4) :- (if (A3 = ) \n (A7 = A0) \n (A7 is\n A3 ^ . ^ A0)), \n (supported-attribute (att A7 attmap)), (!), \n (parse-attributes.aux A2 A3 A5), \n (pi (c0 \\ (supported-attribute (att c0 string) :- !)) =>\n parse-attributes.aux A1 A6), (std.append A5 [get-option A7 A6] A4).", + "rule_text": "(parse-attributes.aux [attribute A0 (node A1) | A2] A3 A4) :- (if (A3 = ) \n (A7 = A0) \n (A7 is\n A3 ^ . ^ A0)), \n (supported-attribute (att A7 attmap)), (!), \n (parse-attributes.aux A2 A3 A5), \n (pi (c0 \\ (supported-attribute (att c0 string) :- !)) =>\n parse-attributes.aux A1 A6), (std.append A5 [get-option A7 A6] A4).", "rule_loc": [ "Context", 6 ] } ], @@ -16585,8 +15779,7 @@ "rule": [ "UserRule", { - "rule_text": - "(coq.parse-attributes A0 A1 A2) :- (std.map A1 (c0 \\ (c1 \\\n (c1 = supported-attribute c0))) A3), \n (A3 => parse-attributes.aux A0 A2), (!).", + "rule_text": "(coq.parse-attributes A0 A1 A2) :- (std.map A1 (c0 \\ (c1 \\\n (c1 = supported-attribute c0))) A3), \n (A3 => parse-attributes.aux A0 A2), (!).", "rule_loc": [ "File", { @@ -16610,13 +15803,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -16631,8 +15822,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -16693,8 +15883,7 @@ "rule": [ "UserRule", { - "rule_text": - "(primitive? A0 A1) :- (is_cdata A0 (ctype A1)).", + "rule_text": "(primitive? A0 A1) :- (is_cdata A0 (ctype A1)).", "rule_loc": [ "File", { @@ -16751,8 +15940,7 @@ "rule": [ "UserRule", { - "rule_text": - "(coq.valid-loc-attribute A0 A1 A2) :- (if (supported-attribute (att A0 loc)) \n (if (primitive? A1 Loc.t) (A2 = ok) \n ((std.any->string A1 A4 ,\n calc\n (Attribute ^ A0 ^\n takes a loc, got ^ A4) A5)\n , A2 = error A5)) \n (if\n (supported-attribute\n att-ignore-unknown) (A2 = ok) \n (calc\n (Attribute ^ A0 ^\n is not supported) A3 ,\n A2 = error A3))).", + "rule_text": "(coq.valid-loc-attribute A0 A1 A2) :- (if (supported-attribute (att A0 loc)) \n (if (primitive? A1 Loc.t) (A2 = ok) \n ((std.any->string A1 A4 ,\n calc\n (Attribute ^ A0 ^\n takes a loc, got ^ A4) A5)\n , A2 = error A5)) \n (if\n (supported-attribute\n att-ignore-unknown) (A2 = ok) \n (calc\n (Attribute ^ A0 ^\n is not supported) A3 ,\n A2 = error A3))).", "rule_loc": [ "File", { @@ -16771,8 +15959,7 @@ "rule": [ "UserRule", { - "rule_text": - "(parse-attributes.aux [attribute A0 (node A1) | A2] A3 A4) :- (if (A3 = ) \n (A7 = A0) \n (A7 is\n A3 ^ . ^ A0)), \n (supported-attribute (att A7 attmap)), (!), \n (parse-attributes.aux A2 A3 A5), \n (pi (c0 \\ (supported-attribute (att c0 string) :- !)) =>\n parse-attributes.aux A1 A6), (std.append A5 [get-option A7 A6] A4).", + "rule_text": "(parse-attributes.aux [attribute A0 (node A1) | A2] A3 A4) :- (if (A3 = ) \n (A7 = A0) \n (A7 is\n A3 ^ . ^ A0)), \n (supported-attribute (att A7 attmap)), (!), \n (parse-attributes.aux A2 A3 A5), \n (pi (c0 \\ (supported-attribute (att c0 string) :- !)) =>\n parse-attributes.aux A1 A6), (std.append A5 [get-option A7 A6] A4).", "rule_loc": [ "Context", 6 ] } ], @@ -16788,8 +15975,7 @@ "rule": [ "UserRule", { - "rule_text": - "(coq.parse-attributes A0 A1 A2) :- (std.map A1 (c0 \\ (c1 \\\n (c1 = supported-attribute c0))) A3), \n (A3 => parse-attributes.aux A0 A2), (!).", + "rule_text": "(coq.parse-attributes A0 A1 A2) :- (std.map A1 (c0 \\ (c1 \\\n (c1 = supported-attribute c0))) A3), \n (A3 => parse-attributes.aux A0 A2), (!).", "rule_loc": [ "File", { @@ -16813,13 +15999,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -16834,8 +16018,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -16870,8 +16053,7 @@ "cut_victims": [ { "cut_branch_for_goal": { - "goal_text": - "if (primitive? File \"(stdin)\", line 1, column 2, character 3: Loc.t) \n (X46 = ok) \n ((std.any->string File \"(stdin)\", line 1, column 2, character 3: X49 ,\n calc (Attribute ^ elpi.loc ^ takes a loc, got ^ X49) X50) ,\n X46 = error X50)", + "goal_text": "if (primitive? File \"(stdin)\", line 1, column 2, character 3: Loc.t) \n (X46 = ok) \n ((std.any->string File \"(stdin)\", line 1, column 2, character 3: X49 ,\n calc (Attribute ^ elpi.loc ^ takes a loc, got ^ X49) X50) ,\n X46 = error X50)", "goal_id": 1186 }, "cut_branch": { @@ -16961,8 +16143,7 @@ "rule": [ "UserRule", { - "rule_text": - "(coq.valid-loc-attribute A0 A1 A2) :- (if (supported-attribute (att A0 loc)) \n (if (primitive? A1 Loc.t) (A2 = ok) \n ((std.any->string A1 A4 ,\n calc\n (Attribute ^ A0 ^\n takes a loc, got ^ A4) A5)\n , A2 = error A5)) \n (if\n (supported-attribute\n att-ignore-unknown) (A2 = ok) \n (calc\n (Attribute ^ A0 ^\n is not supported) A3 ,\n A2 = error A3))).", + "rule_text": "(coq.valid-loc-attribute A0 A1 A2) :- (if (supported-attribute (att A0 loc)) \n (if (primitive? A1 Loc.t) (A2 = ok) \n ((std.any->string A1 A4 ,\n calc\n (Attribute ^ A0 ^\n takes a loc, got ^ A4) A5)\n , A2 = error A5)) \n (if\n (supported-attribute\n att-ignore-unknown) (A2 = ok) \n (calc\n (Attribute ^ A0 ^\n is not supported) A3 ,\n A2 = error A3))).", "rule_loc": [ "File", { @@ -16981,8 +16162,7 @@ "rule": [ "UserRule", { - "rule_text": - "(parse-attributes.aux [attribute A0 (node A1) | A2] A3 A4) :- (if (A3 = ) \n (A7 = A0) \n (A7 is\n A3 ^ . ^ A0)), \n (supported-attribute (att A7 attmap)), (!), \n (parse-attributes.aux A2 A3 A5), \n (pi (c0 \\ (supported-attribute (att c0 string) :- !)) =>\n parse-attributes.aux A1 A6), (std.append A5 [get-option A7 A6] A4).", + "rule_text": "(parse-attributes.aux [attribute A0 (node A1) | A2] A3 A4) :- (if (A3 = ) \n (A7 = A0) \n (A7 is\n A3 ^ . ^ A0)), \n (supported-attribute (att A7 attmap)), (!), \n (parse-attributes.aux A2 A3 A5), \n (pi (c0 \\ (supported-attribute (att c0 string) :- !)) =>\n parse-attributes.aux A1 A6), (std.append A5 [get-option A7 A6] A4).", "rule_loc": [ "Context", 6 ] } ], @@ -16998,8 +16178,7 @@ "rule": [ "UserRule", { - "rule_text": - "(coq.parse-attributes A0 A1 A2) :- (std.map A1 (c0 \\ (c1 \\\n (c1 = supported-attribute c0))) A3), \n (A3 => parse-attributes.aux A0 A2), (!).", + "rule_text": "(coq.parse-attributes A0 A1 A2) :- (std.map A1 (c0 \\ (c1 \\\n (c1 = supported-attribute c0))) A3), \n (A3 => parse-attributes.aux A0 A2), (!).", "rule_loc": [ "File", { @@ -17023,13 +16202,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -17044,8 +16221,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -17136,8 +16312,7 @@ "rule": [ "UserRule", { - "rule_text": - "(parse-attributes.aux [attribute A0 (node A1) | A2] A3 A4) :- (if (A3 = ) \n (A7 = A0) \n (A7 is\n A3 ^ . ^ A0)), \n (supported-attribute (att A7 attmap)), (!), \n (parse-attributes.aux A2 A3 A5), \n (pi (c0 \\ (supported-attribute (att c0 string) :- !)) =>\n parse-attributes.aux A1 A6), (std.append A5 [get-option A7 A6] A4).", + "rule_text": "(parse-attributes.aux [attribute A0 (node A1) | A2] A3 A4) :- (if (A3 = ) \n (A7 = A0) \n (A7 is\n A3 ^ . ^ A0)), \n (supported-attribute (att A7 attmap)), (!), \n (parse-attributes.aux A2 A3 A5), \n (pi (c0 \\ (supported-attribute (att c0 string) :- !)) =>\n parse-attributes.aux A1 A6), (std.append A5 [get-option A7 A6] A4).", "rule_loc": [ "Context", 6 ] } ], @@ -17153,8 +16328,7 @@ "rule": [ "UserRule", { - "rule_text": - "(coq.parse-attributes A0 A1 A2) :- (std.map A1 (c0 \\ (c1 \\\n (c1 = supported-attribute c0))) A3), \n (A3 => parse-attributes.aux A0 A2), (!).", + "rule_text": "(coq.parse-attributes A0 A1 A2) :- (std.map A1 (c0 \\ (c1 \\\n (c1 = supported-attribute c0))) A3), \n (A3 => parse-attributes.aux A0 A2), (!).", "rule_loc": [ "File", { @@ -17178,13 +16352,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -17199,8 +16371,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -17271,8 +16442,7 @@ "rule": [ "UserRule", { - "rule_text": - "(parse-attributes.aux [attribute A0 (node A1) | A2] A3 A4) :- (if (A3 = ) \n (A7 = A0) \n (A7 is\n A3 ^ . ^ A0)), \n (supported-attribute (att A7 attmap)), (!), \n (parse-attributes.aux A2 A3 A5), \n (pi (c0 \\ (supported-attribute (att c0 string) :- !)) =>\n parse-attributes.aux A1 A6), (std.append A5 [get-option A7 A6] A4).", + "rule_text": "(parse-attributes.aux [attribute A0 (node A1) | A2] A3 A4) :- (if (A3 = ) \n (A7 = A0) \n (A7 is\n A3 ^ . ^ A0)), \n (supported-attribute (att A7 attmap)), (!), \n (parse-attributes.aux A2 A3 A5), \n (pi (c0 \\ (supported-attribute (att c0 string) :- !)) =>\n parse-attributes.aux A1 A6), (std.append A5 [get-option A7 A6] A4).", "rule_loc": [ "Context", 6 ] } ], @@ -17288,8 +16458,7 @@ "rule": [ "UserRule", { - "rule_text": - "(coq.parse-attributes A0 A1 A2) :- (std.map A1 (c0 \\ (c1 \\\n (c1 = supported-attribute c0))) A3), \n (A3 => parse-attributes.aux A0 A2), (!).", + "rule_text": "(coq.parse-attributes A0 A1 A2) :- (std.map A1 (c0 \\ (c1 \\\n (c1 = supported-attribute c0))) A3), \n (A3 => parse-attributes.aux A0 A2), (!).", "rule_loc": [ "File", { @@ -17313,13 +16482,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -17334,8 +16501,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -17419,8 +16585,7 @@ "rule": [ "UserRule", { - "rule_text": - "(parse-attributes.aux [attribute A0 (node A1) | A2] A3 A4) :- (if (A3 = ) \n (A7 = A0) \n (A7 is\n A3 ^ . ^ A0)), \n (supported-attribute (att A7 attmap)), (!), \n (parse-attributes.aux A2 A3 A5), \n (pi (c0 \\ (supported-attribute (att c0 string) :- !)) =>\n parse-attributes.aux A1 A6), (std.append A5 [get-option A7 A6] A4).", + "rule_text": "(parse-attributes.aux [attribute A0 (node A1) | A2] A3 A4) :- (if (A3 = ) \n (A7 = A0) \n (A7 is\n A3 ^ . ^ A0)), \n (supported-attribute (att A7 attmap)), (!), \n (parse-attributes.aux A2 A3 A5), \n (pi (c0 \\ (supported-attribute (att c0 string) :- !)) =>\n parse-attributes.aux A1 A6), (std.append A5 [get-option A7 A6] A4).", "rule_loc": [ "Context", 6 ] } ], @@ -17436,8 +16601,7 @@ "rule": [ "UserRule", { - "rule_text": - "(coq.parse-attributes A0 A1 A2) :- (std.map A1 (c0 \\ (c1 \\\n (c1 = supported-attribute c0))) A3), \n (A3 => parse-attributes.aux A0 A2), (!).", + "rule_text": "(coq.parse-attributes A0 A1 A2) :- (std.map A1 (c0 \\ (c1 \\\n (c1 = supported-attribute c0))) A3), \n (A3 => parse-attributes.aux A0 A2), (!).", "rule_loc": [ "File", { @@ -17461,13 +16625,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -17482,8 +16644,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -17586,8 +16747,7 @@ "rule": [ "UserRule", { - "rule_text": - "(parse-attributes.aux [attribute A0 (node A1) | A2] A3 A4) :- (if (A3 = ) \n (A7 = A0) \n (A7 is\n A3 ^ . ^ A0)), \n (supported-attribute (att A7 attmap)), (!), \n (parse-attributes.aux A2 A3 A5), \n (pi (c0 \\ (supported-attribute (att c0 string) :- !)) =>\n parse-attributes.aux A1 A6), (std.append A5 [get-option A7 A6] A4).", + "rule_text": "(parse-attributes.aux [attribute A0 (node A1) | A2] A3 A4) :- (if (A3 = ) \n (A7 = A0) \n (A7 is\n A3 ^ . ^ A0)), \n (supported-attribute (att A7 attmap)), (!), \n (parse-attributes.aux A2 A3 A5), \n (pi (c0 \\ (supported-attribute (att c0 string) :- !)) =>\n parse-attributes.aux A1 A6), (std.append A5 [get-option A7 A6] A4).", "rule_loc": [ "Context", 6 ] } ], @@ -17603,8 +16763,7 @@ "rule": [ "UserRule", { - "rule_text": - "(coq.parse-attributes A0 A1 A2) :- (std.map A1 (c0 \\ (c1 \\\n (c1 = supported-attribute c0))) A3), \n (A3 => parse-attributes.aux A0 A2), (!).", + "rule_text": "(coq.parse-attributes A0 A1 A2) :- (std.map A1 (c0 \\ (c1 \\\n (c1 = supported-attribute c0))) A3), \n (A3 => parse-attributes.aux A0 A2), (!).", "rule_loc": [ "File", { @@ -17628,13 +16787,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -17649,8 +16806,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -17682,8 +16838,7 @@ "Inference", { "current_goal_id": 1178, - "current_goal_text": - "X3 =\n [get-option elpi.loc File \"(stdin)\", line 1, column 2, character 3: | X48]", + "current_goal_text": "X3 =\n [get-option elpi.loc File \"(stdin)\", line 1, column 2, character 3: | X48]", "current_goal_predicate": "=", "failed_attempts": [], "successful_attempts": [ @@ -17712,8 +16867,7 @@ "rule": [ "UserRule", { - "rule_text": - "(parse-attributes.aux [attribute A0 (node A1) | A2] A3 A4) :- (if (A3 = ) \n (A7 = A0) \n (A7 is\n A3 ^ . ^ A0)), \n (supported-attribute (att A7 attmap)), (!), \n (parse-attributes.aux A2 A3 A5), \n (pi (c0 \\ (supported-attribute (att c0 string) :- !)) =>\n parse-attributes.aux A1 A6), (std.append A5 [get-option A7 A6] A4).", + "rule_text": "(parse-attributes.aux [attribute A0 (node A1) | A2] A3 A4) :- (if (A3 = ) \n (A7 = A0) \n (A7 is\n A3 ^ . ^ A0)), \n (supported-attribute (att A7 attmap)), (!), \n (parse-attributes.aux A2 A3 A5), \n (pi (c0 \\ (supported-attribute (att c0 string) :- !)) =>\n parse-attributes.aux A1 A6), (std.append A5 [get-option A7 A6] A4).", "rule_loc": [ "Context", 6 ] } ], @@ -17729,8 +16883,7 @@ "rule": [ "UserRule", { - "rule_text": - "(coq.parse-attributes A0 A1 A2) :- (std.map A1 (c0 \\ (c1 \\\n (c1 = supported-attribute c0))) A3), \n (A3 => parse-attributes.aux A0 A2), (!).", + "rule_text": "(coq.parse-attributes A0 A1 A2) :- (std.map A1 (c0 \\ (c1 \\\n (c1 = supported-attribute c0))) A3), \n (A3 => parse-attributes.aux A0 A2), (!).", "rule_loc": [ "File", { @@ -17754,13 +16907,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -17775,8 +16926,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -17860,8 +17010,7 @@ "rule": [ "UserRule", { - "rule_text": - "(parse-attributes.aux [attribute A0 (node A1) | A2] A3 A4) :- (if (A3 = ) \n (A7 = A0) \n (A7 is\n A3 ^ . ^ A0)), \n (supported-attribute (att A7 attmap)), (!), \n (parse-attributes.aux A2 A3 A5), \n (pi (c0 \\ (supported-attribute (att c0 string) :- !)) =>\n parse-attributes.aux A1 A6), (std.append A5 [get-option A7 A6] A4).", + "rule_text": "(parse-attributes.aux [attribute A0 (node A1) | A2] A3 A4) :- (if (A3 = ) \n (A7 = A0) \n (A7 is\n A3 ^ . ^ A0)), \n (supported-attribute (att A7 attmap)), (!), \n (parse-attributes.aux A2 A3 A5), \n (pi (c0 \\ (supported-attribute (att c0 string) :- !)) =>\n parse-attributes.aux A1 A6), (std.append A5 [get-option A7 A6] A4).", "rule_loc": [ "Context", 6 ] } ], @@ -17877,8 +17026,7 @@ "rule": [ "UserRule", { - "rule_text": - "(coq.parse-attributes A0 A1 A2) :- (std.map A1 (c0 \\ (c1 \\\n (c1 = supported-attribute c0))) A3), \n (A3 => parse-attributes.aux A0 A2), (!).", + "rule_text": "(coq.parse-attributes A0 A1 A2) :- (std.map A1 (c0 \\ (c1 \\\n (c1 = supported-attribute c0))) A3), \n (A3 => parse-attributes.aux A0 A2), (!).", "rule_loc": [ "File", { @@ -17902,13 +17050,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -17923,8 +17069,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -17968,8 +17113,7 @@ "Inference", { "current_goal_id": 1128, - "current_goal_text": - "[get-option elpi.loc File \"(stdin)\", line 1, column 2, character 3:] =>\n (save-docstring ,\n with-logging\n (instance.declare-const _ \n (app\n [global (const «IsSelfA'.phant_Build»), global (indt «nat»), \n global (indc «O»), fun `x` X0 c0 \\ c0]) (arity X1) _))", + "current_goal_text": "[get-option elpi.loc File \"(stdin)\", line 1, column 2, character 3:] =>\n (save-docstring ,\n with-logging\n (instance.declare-const _ \n (app\n [global (const «IsSelfA'.phant_Build»), global (indt «nat»), \n global (indc «O»), fun `x` X0 c0 \\ c0]) (arity X1) _))", "current_goal_predicate": "=>", "failed_attempts": [], "successful_attempts": [ @@ -17980,8 +17124,7 @@ }, "siblings": [ { - "goal_text": - "save-docstring ,\n with-logging\n (instance.declare-const _ \n (app\n [global (const «IsSelfA'.phant_Build»), global (indt «nat»), \n global (indc «O»), fun `x` X0 c0 \\ c0]) (arity X1) _)", + "goal_text": "save-docstring ,\n with-logging\n (instance.declare-const _ \n (app\n [global (const «IsSelfA'.phant_Build»), global (indt «nat»), \n global (indc «O»), fun `x` X0 c0 \\ c0]) (arity X1) _)", "goal_id": 1196 } ], @@ -17999,13 +17142,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -18020,8 +17161,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -18053,8 +17193,7 @@ "Inference", { "current_goal_id": 1196, - "current_goal_text": - "save-docstring ,\n with-logging\n (instance.declare-const _ \n (app\n [global (const «IsSelfA'.phant_Build»), global (indt «nat»), \n global (indc «O»), fun `x` X0 c0 \\ c0]) (arity X1) _)", + "current_goal_text": "save-docstring ,\n with-logging\n (instance.declare-const _ \n (app\n [global (const «IsSelfA'.phant_Build»), global (indt «nat»), \n global (indc «O»), fun `x` X0 c0 \\ c0]) (arity X1) _)", "current_goal_predicate": ",", "failed_attempts": [], "successful_attempts": [ @@ -18066,8 +17205,7 @@ "siblings": [ { "goal_text": "save-docstring", "goal_id": 1197 }, { - "goal_text": - "with-logging\n (instance.declare-const _ \n (app\n [global (const «IsSelfA'.phant_Build»), global (indt «nat»), \n global (indc «O»), fun `x` X0 c0 \\ c0]) (arity X1) _)", + "goal_text": "with-logging\n (instance.declare-const _ \n (app\n [global (const «IsSelfA'.phant_Build»), global (indt «nat»), \n global (indc «O»), fun `x` X0 c0 \\ c0]) (arity X1) _)", "goal_id": 1198 } ], @@ -18090,13 +17228,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -18111,8 +17247,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -18153,13 +17288,11 @@ "rule": [ "UserRule", { - "rule_text": - "save-docstring :- (if (get-option elpi.loc A0 , get-option doc A1) \n (acc-clause _ (docstring A0 A1)) true).", + "rule_text": "save-docstring :- (if (get-option elpi.loc A0 , get-option doc A1) \n (acc-clause _ (docstring A0 A1)) true).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 81, "column": 0, "character": 2429 @@ -18171,8 +17304,7 @@ }, "siblings": [ { - "goal_text": - "if (get-option elpi.loc X52 , get-option doc X53) \n (acc-clause _ (docstring X52 X53)) true", + "goal_text": "if (get-option elpi.loc X52 , get-option doc X53) \n (acc-clause _ (docstring X52 X53)) true", "goal_id": 1199 } ], @@ -18185,13 +17317,11 @@ "rule": [ "UserRule", { - "rule_text": - "save-docstring :- (if (get-option elpi.loc A0 , get-option doc A1) \n (acc-clause _ (docstring A0 A1)) true).", + "rule_text": "save-docstring :- (if (get-option elpi.loc A0 , get-option doc A1) \n (acc-clause _ (docstring A0 A1)) true).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 81, "column": 0, "character": 2429 @@ -18216,13 +17346,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -18237,8 +17365,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -18270,8 +17397,7 @@ "Inference", { "current_goal_id": 1199, - "current_goal_text": - "if (get-option elpi.loc X52 , get-option doc X53) \n (acc-clause _ (docstring X52 X53)) true", + "current_goal_text": "if (get-option elpi.loc X52 , get-option doc X53) \n (acc-clause _ (docstring X52 X53)) true", "current_goal_predicate": "if", "failed_attempts": [], "successful_attempts": [ @@ -18339,13 +17465,11 @@ "rule": [ "UserRule", { - "rule_text": - "save-docstring :- (if (get-option elpi.loc A0 , get-option doc A1) \n (acc-clause _ (docstring A0 A1)) true).", + "rule_text": "save-docstring :- (if (get-option elpi.loc A0 , get-option doc A1) \n (acc-clause _ (docstring A0 A1)) true).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 81, "column": 0, "character": 2429 @@ -18370,13 +17494,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -18391,8 +17513,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -18470,13 +17591,11 @@ "rule": [ "UserRule", { - "rule_text": - "save-docstring :- (if (get-option elpi.loc A0 , get-option doc A1) \n (acc-clause _ (docstring A0 A1)) true).", + "rule_text": "save-docstring :- (if (get-option elpi.loc A0 , get-option doc A1) \n (acc-clause _ (docstring A0 A1)) true).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 81, "column": 0, "character": 2429 @@ -18501,13 +17620,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -18522,8 +17639,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -18564,8 +17680,7 @@ "rule": [ "UserRule", { - "rule_text": - "(get-option elpi.loc File \"(stdin)\", line 1, column 2, character 3:) :- .", + "rule_text": "(get-option elpi.loc File \"(stdin)\", line 1, column 2, character 3:) :- .", "rule_loc": [ "Context", 74 ] } ], @@ -18586,8 +17701,7 @@ "rule": [ "UserRule", { - "rule_text": - "(get-option elpi.loc File \"(stdin)\", line 1, column 2, character 3:) :- .", + "rule_text": "(get-option elpi.loc File \"(stdin)\", line 1, column 2, character 3:) :- .", "rule_loc": [ "Context", 74 ] } ], @@ -18622,13 +17736,11 @@ "rule": [ "UserRule", { - "rule_text": - "save-docstring :- (if (get-option elpi.loc A0 , get-option doc A1) \n (acc-clause _ (docstring A0 A1)) true).", + "rule_text": "save-docstring :- (if (get-option elpi.loc A0 , get-option doc A1) \n (acc-clause _ (docstring A0 A1)) true).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 81, "column": 0, "character": 2429 @@ -18653,13 +17765,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -18674,8 +17784,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -18741,13 +17850,11 @@ "rule": [ "UserRule", { - "rule_text": - "save-docstring :- (if (get-option elpi.loc A0 , get-option doc A1) \n (acc-clause _ (docstring A0 A1)) true).", + "rule_text": "save-docstring :- (if (get-option elpi.loc A0 , get-option doc A1) \n (acc-clause _ (docstring A0 A1)) true).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 81, "column": 0, "character": 2429 @@ -18772,13 +17879,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -18793,8 +17898,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -18826,8 +17930,7 @@ "Inference", { "current_goal_id": 1199, - "current_goal_text": - "if (get-option elpi.loc X52 , get-option doc X53) \n (acc-clause _ (docstring X52 X53)) true", + "current_goal_text": "if (get-option elpi.loc X52 , get-option doc X53) \n (acc-clause _ (docstring X52 X53)) true", "current_goal_predicate": "if", "failed_attempts": [], "successful_attempts": [ @@ -18879,13 +17982,11 @@ "rule": [ "UserRule", { - "rule_text": - "save-docstring :- (if (get-option elpi.loc A0 , get-option doc A1) \n (acc-clause _ (docstring A0 A1)) true).", + "rule_text": "save-docstring :- (if (get-option elpi.loc A0 , get-option doc A1) \n (acc-clause _ (docstring A0 A1)) true).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 81, "column": 0, "character": 2429 @@ -18910,13 +18011,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -18931,8 +18030,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -19035,13 +18133,11 @@ "rule": [ "UserRule", { - "rule_text": - "save-docstring :- (if (get-option elpi.loc A0 , get-option doc A1) \n (acc-clause _ (docstring A0 A1)) true).", + "rule_text": "save-docstring :- (if (get-option elpi.loc A0 , get-option doc A1) \n (acc-clause _ (docstring A0 A1)) true).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 81, "column": 0, "character": 2429 @@ -19066,13 +18162,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -19087,8 +18181,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -19120,8 +18213,7 @@ "Inference", { "current_goal_id": 1198, - "current_goal_text": - "with-logging\n (instance.declare-const _ \n (app\n [global (const «IsSelfA'.phant_Build»), global (indt «nat»), \n global (indc «O»), fun `x` X0 c0 \\ c0]) (arity X1) _)", + "current_goal_text": "with-logging\n (instance.declare-const _ \n (app\n [global (const «IsSelfA'.phant_Build»), global (indt «nat»), \n global (indc «O»), fun `x` X0 c0 \\ c0]) (arity X1) _)", "current_goal_predicate": "with-logging", "failed_attempts": [], "successful_attempts": [ @@ -19130,13 +18222,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-logging A0) :- (get-option elpi.hb.log _ , A1 = tt ;\n get-option elpi.hb.log.raw _ , A1 = ff), (!), \n (get-option elpi.loc A2), (loc.fields A2 A3 _ _ _ _), \n (std.any->string A2 A4), (A5 is A3 ^ .hb), (open_append A5 A6), \n (std.string.concat \n [, HIERARCHY BUILDER PATCH v1, A4, ] A7), \n (output A6 A7), (close_out A6), (log.private.logger A8 A1 => A0), \n (log.private.logger-close A8), (std.intersperse coq.pp.spc A8 A9), \n (coq.pp->string (coq.pp.box (coq.pp.v 0) A9) A10), (open_append A5 A11), \n (output A11 A10), (close_out A11).", + "rule_text": "(with-logging A0) :- (get-option elpi.hb.log _ , A1 = tt ;\n get-option elpi.hb.log.raw _ , A1 = ff), (!), \n (get-option elpi.loc A2), (loc.fields A2 A3 _ _ _ _), \n (std.any->string A2 A4), (A5 is A3 ^ .hb), (open_append A5 A6), \n (std.string.concat \n [, HIERARCHY BUILDER PATCH v1, A4, ] A7), \n (output A6 A7), (close_out A6), (log.private.logger A8 A1 => A0), \n (log.private.logger-close A8), (std.intersperse coq.pp.spc A8 A9), \n (coq.pp->string (coq.pp.box (coq.pp.v 0) A9) A10), (open_append A5 A11), \n (output A11 A10), (close_out A11).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 267, "column": 0, "character": 10575 @@ -19153,8 +18243,7 @@ }, "siblings": [ { - "goal_text": - "get-option elpi.hb.log _ , X54 = tt ; get-option elpi.hb.log.raw _ , X54 = ff", + "goal_text": "get-option elpi.hb.log _ , X54 = tt ; get-option elpi.hb.log.raw _ , X54 = ff", "goal_id": 1206 }, { "goal_text": "!", "goal_id": 1207 }, @@ -19164,15 +18253,13 @@ { "goal_text": "X58 is X56 ^ .hb", "goal_id": 1211 }, { "goal_text": "open_append X58 X59", "goal_id": 1212 }, { - "goal_text": - "std.string.concat \n [, HIERARCHY BUILDER PATCH v1, X57, ] X60", + "goal_text": "std.string.concat \n [, HIERARCHY BUILDER PATCH v1, X57, ] X60", "goal_id": 1213 }, { "goal_text": "output X59 X60", "goal_id": 1214 }, { "goal_text": "close_out X59", "goal_id": 1215 }, { - "goal_text": - "log.private.logger X61 X54 =>\n instance.declare-const _ \n (app\n [global (const «IsSelfA'.phant_Build»), global (indt «nat»), \n global (indc «O»), fun `x` X0 c0 \\ c0]) (arity X1) _", + "goal_text": "log.private.logger X61 X54 =>\n instance.declare-const _ \n (app\n [global (const «IsSelfA'.phant_Build»), global (indt «nat»), \n global (indc «O»), fun `x` X0 c0 \\ c0]) (arity X1) _", "goal_id": 1216 }, { @@ -19184,8 +18271,7 @@ "goal_id": 1218 }, { - "goal_text": - "coq.pp->string (coq.pp.box (coq.pp.v 0) X62) X63", + "goal_text": "coq.pp->string (coq.pp.box (coq.pp.v 0) X62) X63", "goal_id": 1219 }, { "goal_text": "open_append X58 X64", "goal_id": 1220 }, @@ -19201,13 +18287,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-logging A0) :- (get-option elpi.hb.log _ , A1 = tt ;\n get-option elpi.hb.log.raw _ , A1 = ff), (!), \n (get-option elpi.loc A2), (loc.fields A2 A3 _ _ _ _), \n (std.any->string A2 A4), (A5 is A3 ^ .hb), (open_append A5 A6), \n (std.string.concat \n [, HIERARCHY BUILDER PATCH v1, A4, ] A7), \n (output A6 A7), (close_out A6), (log.private.logger A8 A1 => A0), \n (log.private.logger-close A8), (std.intersperse coq.pp.spc A8 A9), \n (coq.pp->string (coq.pp.box (coq.pp.v 0) A9) A10), (open_append A5 A11), \n (output A11 A10), (close_out A11).", + "rule_text": "(with-logging A0) :- (get-option elpi.hb.log _ , A1 = tt ;\n get-option elpi.hb.log.raw _ , A1 = ff), (!), \n (get-option elpi.loc A2), (loc.fields A2 A3 _ _ _ _), \n (std.any->string A2 A4), (A5 is A3 ^ .hb), (open_append A5 A6), \n (std.string.concat \n [, HIERARCHY BUILDER PATCH v1, A4, ] A7), \n (output A6 A7), (close_out A6), (log.private.logger A8 A1 => A0), \n (log.private.logger-close A8), (std.intersperse coq.pp.spc A8 A9), \n (coq.pp->string (coq.pp.box (coq.pp.v 0) A9) A10), (open_append A5 A11), \n (output A11 A10), (close_out A11).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 267, "column": 0, "character": 10575 @@ -19232,13 +18316,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -19253,8 +18335,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -19286,8 +18367,7 @@ "Inference", { "current_goal_id": 1206, - "current_goal_text": - "get-option elpi.hb.log _ , X54 = tt ; get-option elpi.hb.log.raw _ , X54 = ff", + "current_goal_text": "get-option elpi.hb.log _ , X54 = tt ; get-option elpi.hb.log.raw _ , X54 = ff", "current_goal_predicate": ";", "failed_attempts": [], "successful_attempts": [ @@ -19346,13 +18426,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-logging A0) :- (get-option elpi.hb.log _ , A1 = tt ;\n get-option elpi.hb.log.raw _ , A1 = ff), (!), \n (get-option elpi.loc A2), (loc.fields A2 A3 _ _ _ _), \n (std.any->string A2 A4), (A5 is A3 ^ .hb), (open_append A5 A6), \n (std.string.concat \n [, HIERARCHY BUILDER PATCH v1, A4, ] A7), \n (output A6 A7), (close_out A6), (log.private.logger A8 A1 => A0), \n (log.private.logger-close A8), (std.intersperse coq.pp.spc A8 A9), \n (coq.pp->string (coq.pp.box (coq.pp.v 0) A9) A10), (open_append A5 A11), \n (output A11 A10), (close_out A11).", + "rule_text": "(with-logging A0) :- (get-option elpi.hb.log _ , A1 = tt ;\n get-option elpi.hb.log.raw _ , A1 = ff), (!), \n (get-option elpi.loc A2), (loc.fields A2 A3 _ _ _ _), \n (std.any->string A2 A4), (A5 is A3 ^ .hb), (open_append A5 A6), \n (std.string.concat \n [, HIERARCHY BUILDER PATCH v1, A4, ] A7), \n (output A6 A7), (close_out A6), (log.private.logger A8 A1 => A0), \n (log.private.logger-close A8), (std.intersperse coq.pp.spc A8 A9), \n (coq.pp->string (coq.pp.box (coq.pp.v 0) A9) A10), (open_append A5 A11), \n (output A11 A10), (close_out A11).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 267, "column": 0, "character": 10575 @@ -19377,13 +18455,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -19398,8 +18474,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -19477,13 +18552,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-logging A0) :- (get-option elpi.hb.log _ , A1 = tt ;\n get-option elpi.hb.log.raw _ , A1 = ff), (!), \n (get-option elpi.loc A2), (loc.fields A2 A3 _ _ _ _), \n (std.any->string A2 A4), (A5 is A3 ^ .hb), (open_append A5 A6), \n (std.string.concat \n [, HIERARCHY BUILDER PATCH v1, A4, ] A7), \n (output A6 A7), (close_out A6), (log.private.logger A8 A1 => A0), \n (log.private.logger-close A8), (std.intersperse coq.pp.spc A8 A9), \n (coq.pp->string (coq.pp.box (coq.pp.v 0) A9) A10), (open_append A5 A11), \n (output A11 A10), (close_out A11).", + "rule_text": "(with-logging A0) :- (get-option elpi.hb.log _ , A1 = tt ;\n get-option elpi.hb.log.raw _ , A1 = ff), (!), \n (get-option elpi.loc A2), (loc.fields A2 A3 _ _ _ _), \n (std.any->string A2 A4), (A5 is A3 ^ .hb), (open_append A5 A6), \n (std.string.concat \n [, HIERARCHY BUILDER PATCH v1, A4, ] A7), \n (output A6 A7), (close_out A6), (log.private.logger A8 A1 => A0), \n (log.private.logger-close A8), (std.intersperse coq.pp.spc A8 A9), \n (coq.pp->string (coq.pp.box (coq.pp.v 0) A9) A10), (open_append A5 A11), \n (output A11 A10), (close_out A11).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 267, "column": 0, "character": 10575 @@ -19508,13 +18581,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -19529,8 +18600,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -19596,13 +18666,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-logging A0) :- (get-option elpi.hb.log _ , A1 = tt ;\n get-option elpi.hb.log.raw _ , A1 = ff), (!), \n (get-option elpi.loc A2), (loc.fields A2 A3 _ _ _ _), \n (std.any->string A2 A4), (A5 is A3 ^ .hb), (open_append A5 A6), \n (std.string.concat \n [, HIERARCHY BUILDER PATCH v1, A4, ] A7), \n (output A6 A7), (close_out A6), (log.private.logger A8 A1 => A0), \n (log.private.logger-close A8), (std.intersperse coq.pp.spc A8 A9), \n (coq.pp->string (coq.pp.box (coq.pp.v 0) A9) A10), (open_append A5 A11), \n (output A11 A10), (close_out A11).", + "rule_text": "(with-logging A0) :- (get-option elpi.hb.log _ , A1 = tt ;\n get-option elpi.hb.log.raw _ , A1 = ff), (!), \n (get-option elpi.loc A2), (loc.fields A2 A3 _ _ _ _), \n (std.any->string A2 A4), (A5 is A3 ^ .hb), (open_append A5 A6), \n (std.string.concat \n [, HIERARCHY BUILDER PATCH v1, A4, ] A7), \n (output A6 A7), (close_out A6), (log.private.logger A8 A1 => A0), \n (log.private.logger-close A8), (std.intersperse coq.pp.spc A8 A9), \n (coq.pp->string (coq.pp.box (coq.pp.v 0) A9) A10), (open_append A5 A11), \n (output A11 A10), (close_out A11).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 267, "column": 0, "character": 10575 @@ -19627,13 +18695,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -19648,8 +18714,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -19681,8 +18746,7 @@ "Inference", { "current_goal_id": 1206, - "current_goal_text": - "get-option elpi.hb.log _ , X54 = tt ; get-option elpi.hb.log.raw _ , X54 = ff", + "current_goal_text": "get-option elpi.hb.log _ , X54 = tt ; get-option elpi.hb.log.raw _ , X54 = ff", "current_goal_predicate": ";", "failed_attempts": [], "successful_attempts": [ @@ -19741,13 +18805,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-logging A0) :- (get-option elpi.hb.log _ , A1 = tt ;\n get-option elpi.hb.log.raw _ , A1 = ff), (!), \n (get-option elpi.loc A2), (loc.fields A2 A3 _ _ _ _), \n (std.any->string A2 A4), (A5 is A3 ^ .hb), (open_append A5 A6), \n (std.string.concat \n [, HIERARCHY BUILDER PATCH v1, A4, ] A7), \n (output A6 A7), (close_out A6), (log.private.logger A8 A1 => A0), \n (log.private.logger-close A8), (std.intersperse coq.pp.spc A8 A9), \n (coq.pp->string (coq.pp.box (coq.pp.v 0) A9) A10), (open_append A5 A11), \n (output A11 A10), (close_out A11).", + "rule_text": "(with-logging A0) :- (get-option elpi.hb.log _ , A1 = tt ;\n get-option elpi.hb.log.raw _ , A1 = ff), (!), \n (get-option elpi.loc A2), (loc.fields A2 A3 _ _ _ _), \n (std.any->string A2 A4), (A5 is A3 ^ .hb), (open_append A5 A6), \n (std.string.concat \n [, HIERARCHY BUILDER PATCH v1, A4, ] A7), \n (output A6 A7), (close_out A6), (log.private.logger A8 A1 => A0), \n (log.private.logger-close A8), (std.intersperse coq.pp.spc A8 A9), \n (coq.pp->string (coq.pp.box (coq.pp.v 0) A9) A10), (open_append A5 A11), \n (output A11 A10), (close_out A11).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 267, "column": 0, "character": 10575 @@ -19772,13 +18834,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -19793,8 +18853,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -19875,13 +18934,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-logging A0) :- (get-option elpi.hb.log _ , A1 = tt ;\n get-option elpi.hb.log.raw _ , A1 = ff), (!), \n (get-option elpi.loc A2), (loc.fields A2 A3 _ _ _ _), \n (std.any->string A2 A4), (A5 is A3 ^ .hb), (open_append A5 A6), \n (std.string.concat \n [, HIERARCHY BUILDER PATCH v1, A4, ] A7), \n (output A6 A7), (close_out A6), (log.private.logger A8 A1 => A0), \n (log.private.logger-close A8), (std.intersperse coq.pp.spc A8 A9), \n (coq.pp->string (coq.pp.box (coq.pp.v 0) A9) A10), (open_append A5 A11), \n (output A11 A10), (close_out A11).", + "rule_text": "(with-logging A0) :- (get-option elpi.hb.log _ , A1 = tt ;\n get-option elpi.hb.log.raw _ , A1 = ff), (!), \n (get-option elpi.loc A2), (loc.fields A2 A3 _ _ _ _), \n (std.any->string A2 A4), (A5 is A3 ^ .hb), (open_append A5 A6), \n (std.string.concat \n [, HIERARCHY BUILDER PATCH v1, A4, ] A7), \n (output A6 A7), (close_out A6), (log.private.logger A8 A1 => A0), \n (log.private.logger-close A8), (std.intersperse coq.pp.spc A8 A9), \n (coq.pp->string (coq.pp.box (coq.pp.v 0) A9) A10), (open_append A5 A11), \n (output A11 A10), (close_out A11).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 267, "column": 0, "character": 10575 @@ -19906,13 +18963,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -19927,8 +18982,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -19994,13 +19048,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-logging A0) :- (get-option elpi.hb.log _ , A1 = tt ;\n get-option elpi.hb.log.raw _ , A1 = ff), (!), \n (get-option elpi.loc A2), (loc.fields A2 A3 _ _ _ _), \n (std.any->string A2 A4), (A5 is A3 ^ .hb), (open_append A5 A6), \n (std.string.concat \n [, HIERARCHY BUILDER PATCH v1, A4, ] A7), \n (output A6 A7), (close_out A6), (log.private.logger A8 A1 => A0), \n (log.private.logger-close A8), (std.intersperse coq.pp.spc A8 A9), \n (coq.pp->string (coq.pp.box (coq.pp.v 0) A9) A10), (open_append A5 A11), \n (output A11 A10), (close_out A11).", + "rule_text": "(with-logging A0) :- (get-option elpi.hb.log _ , A1 = tt ;\n get-option elpi.hb.log.raw _ , A1 = ff), (!), \n (get-option elpi.loc A2), (loc.fields A2 A3 _ _ _ _), \n (std.any->string A2 A4), (A5 is A3 ^ .hb), (open_append A5 A6), \n (std.string.concat \n [, HIERARCHY BUILDER PATCH v1, A4, ] A7), \n (output A6 A7), (close_out A6), (log.private.logger A8 A1 => A0), \n (log.private.logger-close A8), (std.intersperse coq.pp.spc A8 A9), \n (coq.pp->string (coq.pp.box (coq.pp.v 0) A9) A10), (open_append A5 A11), \n (output A11 A10), (close_out A11).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 267, "column": 0, "character": 10575 @@ -20025,13 +19077,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -20046,8 +19096,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -20079,8 +19128,7 @@ "Inference", { "current_goal_id": 1198, - "current_goal_text": - "with-logging\n (instance.declare-const _ \n (app\n [global (const «IsSelfA'.phant_Build»), global (indt «nat»), \n global (indc «O»), fun `x` X0 c0 \\ c0]) (arity X1) _)", + "current_goal_text": "with-logging\n (instance.declare-const _ \n (app\n [global (const «IsSelfA'.phant_Build»), global (indt «nat»), \n global (indc «O»), fun `x` X0 c0 \\ c0]) (arity X1) _)", "current_goal_predicate": "with-logging", "failed_attempts": [], "successful_attempts": [ @@ -20089,13 +19137,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-logging A0) :- (get-option log tt , A1 = tt ;\n get-option log.raw tt , A1 = ff), (!), \n (log.private.logger A2 A1 => A0), (log.private.logger-close A2), \n (std.intersperse coq.pp.spc A2 A3), \n (coq.pp->string (coq.pp.box (coq.pp.v 0) A3) A4), (coq.say (* \n A4 \n*)).", + "rule_text": "(with-logging A0) :- (get-option log tt , A1 = tt ;\n get-option log.raw tt , A1 = ff), (!), \n (log.private.logger A2 A1 => A0), (log.private.logger-close A2), \n (std.intersperse coq.pp.spc A2 A3), \n (coq.pp->string (coq.pp.box (coq.pp.v 0) A3) A4), (coq.say (* \n A4 \n*)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 283, "column": 0, "character": 11151 @@ -20112,14 +19158,12 @@ }, "siblings": [ { - "goal_text": - "get-option log tt , X65 = tt ; get-option log.raw tt , X65 = ff", + "goal_text": "get-option log tt , X65 = tt ; get-option log.raw tt , X65 = ff", "goal_id": 1229 }, { "goal_text": "!", "goal_id": 1230 }, { - "goal_text": - "log.private.logger X66 X65 =>\n instance.declare-const _ \n (app\n [global (const «IsSelfA'.phant_Build»), global (indt «nat»), \n global (indc «O»), fun `x` X0 c0 \\ c0]) (arity X1) _", + "goal_text": "log.private.logger X66 X65 =>\n instance.declare-const _ \n (app\n [global (const «IsSelfA'.phant_Build»), global (indt «nat»), \n global (indc «O»), fun `x` X0 c0 \\ c0]) (arity X1) _", "goal_id": 1231 }, { @@ -20131,8 +19175,7 @@ "goal_id": 1233 }, { - "goal_text": - "coq.pp->string (coq.pp.box (coq.pp.v 0) X67) X68", + "goal_text": "coq.pp->string (coq.pp.box (coq.pp.v 0) X67) X68", "goal_id": 1234 }, { "goal_text": "coq.say (* \n X68 \n*)", "goal_id": 1235 } @@ -20146,13 +19189,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-logging A0) :- (get-option log tt , A1 = tt ;\n get-option log.raw tt , A1 = ff), (!), \n (log.private.logger A2 A1 => A0), (log.private.logger-close A2), \n (std.intersperse coq.pp.spc A2 A3), \n (coq.pp->string (coq.pp.box (coq.pp.v 0) A3) A4), (coq.say (* \n A4 \n*)).", + "rule_text": "(with-logging A0) :- (get-option log tt , A1 = tt ;\n get-option log.raw tt , A1 = ff), (!), \n (log.private.logger A2 A1 => A0), (log.private.logger-close A2), \n (std.intersperse coq.pp.spc A2 A3), \n (coq.pp->string (coq.pp.box (coq.pp.v 0) A3) A4), (coq.say (* \n A4 \n*)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 283, "column": 0, "character": 11151 @@ -20177,13 +19218,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -20198,8 +19237,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -20231,8 +19269,7 @@ "Inference", { "current_goal_id": 1229, - "current_goal_text": - "get-option log tt , X65 = tt ; get-option log.raw tt , X65 = ff", + "current_goal_text": "get-option log tt , X65 = tt ; get-option log.raw tt , X65 = ff", "current_goal_predicate": ";", "failed_attempts": [], "successful_attempts": [ @@ -20291,13 +19328,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-logging A0) :- (get-option log tt , A1 = tt ;\n get-option log.raw tt , A1 = ff), (!), \n (log.private.logger A2 A1 => A0), (log.private.logger-close A2), \n (std.intersperse coq.pp.spc A2 A3), \n (coq.pp->string (coq.pp.box (coq.pp.v 0) A3) A4), (coq.say (* \n A4 \n*)).", + "rule_text": "(with-logging A0) :- (get-option log tt , A1 = tt ;\n get-option log.raw tt , A1 = ff), (!), \n (log.private.logger A2 A1 => A0), (log.private.logger-close A2), \n (std.intersperse coq.pp.spc A2 A3), \n (coq.pp->string (coq.pp.box (coq.pp.v 0) A3) A4), (coq.say (* \n A4 \n*)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 283, "column": 0, "character": 11151 @@ -20322,13 +19357,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -20343,8 +19376,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -20422,13 +19454,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-logging A0) :- (get-option log tt , A1 = tt ;\n get-option log.raw tt , A1 = ff), (!), \n (log.private.logger A2 A1 => A0), (log.private.logger-close A2), \n (std.intersperse coq.pp.spc A2 A3), \n (coq.pp->string (coq.pp.box (coq.pp.v 0) A3) A4), (coq.say (* \n A4 \n*)).", + "rule_text": "(with-logging A0) :- (get-option log tt , A1 = tt ;\n get-option log.raw tt , A1 = ff), (!), \n (log.private.logger A2 A1 => A0), (log.private.logger-close A2), \n (std.intersperse coq.pp.spc A2 A3), \n (coq.pp->string (coq.pp.box (coq.pp.v 0) A3) A4), (coq.say (* \n A4 \n*)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 283, "column": 0, "character": 11151 @@ -20453,13 +19483,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -20474,8 +19502,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -20541,13 +19568,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-logging A0) :- (get-option log tt , A1 = tt ;\n get-option log.raw tt , A1 = ff), (!), \n (log.private.logger A2 A1 => A0), (log.private.logger-close A2), \n (std.intersperse coq.pp.spc A2 A3), \n (coq.pp->string (coq.pp.box (coq.pp.v 0) A3) A4), (coq.say (* \n A4 \n*)).", + "rule_text": "(with-logging A0) :- (get-option log tt , A1 = tt ;\n get-option log.raw tt , A1 = ff), (!), \n (log.private.logger A2 A1 => A0), (log.private.logger-close A2), \n (std.intersperse coq.pp.spc A2 A3), \n (coq.pp->string (coq.pp.box (coq.pp.v 0) A3) A4), (coq.say (* \n A4 \n*)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 283, "column": 0, "character": 11151 @@ -20572,13 +19597,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -20593,8 +19616,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -20626,8 +19648,7 @@ "Inference", { "current_goal_id": 1229, - "current_goal_text": - "get-option log tt , X65 = tt ; get-option log.raw tt , X65 = ff", + "current_goal_text": "get-option log tt , X65 = tt ; get-option log.raw tt , X65 = ff", "current_goal_predicate": ";", "failed_attempts": [], "successful_attempts": [ @@ -20686,13 +19707,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-logging A0) :- (get-option log tt , A1 = tt ;\n get-option log.raw tt , A1 = ff), (!), \n (log.private.logger A2 A1 => A0), (log.private.logger-close A2), \n (std.intersperse coq.pp.spc A2 A3), \n (coq.pp->string (coq.pp.box (coq.pp.v 0) A3) A4), (coq.say (* \n A4 \n*)).", + "rule_text": "(with-logging A0) :- (get-option log tt , A1 = tt ;\n get-option log.raw tt , A1 = ff), (!), \n (log.private.logger A2 A1 => A0), (log.private.logger-close A2), \n (std.intersperse coq.pp.spc A2 A3), \n (coq.pp->string (coq.pp.box (coq.pp.v 0) A3) A4), (coq.say (* \n A4 \n*)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 283, "column": 0, "character": 11151 @@ -20717,13 +19736,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -20738,8 +19755,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -20817,13 +19833,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-logging A0) :- (get-option log tt , A1 = tt ;\n get-option log.raw tt , A1 = ff), (!), \n (log.private.logger A2 A1 => A0), (log.private.logger-close A2), \n (std.intersperse coq.pp.spc A2 A3), \n (coq.pp->string (coq.pp.box (coq.pp.v 0) A3) A4), (coq.say (* \n A4 \n*)).", + "rule_text": "(with-logging A0) :- (get-option log tt , A1 = tt ;\n get-option log.raw tt , A1 = ff), (!), \n (log.private.logger A2 A1 => A0), (log.private.logger-close A2), \n (std.intersperse coq.pp.spc A2 A3), \n (coq.pp->string (coq.pp.box (coq.pp.v 0) A3) A4), (coq.say (* \n A4 \n*)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 283, "column": 0, "character": 11151 @@ -20848,13 +19862,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -20869,8 +19881,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -20936,13 +19947,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-logging A0) :- (get-option log tt , A1 = tt ;\n get-option log.raw tt , A1 = ff), (!), \n (log.private.logger A2 A1 => A0), (log.private.logger-close A2), \n (std.intersperse coq.pp.spc A2 A3), \n (coq.pp->string (coq.pp.box (coq.pp.v 0) A3) A4), (coq.say (* \n A4 \n*)).", + "rule_text": "(with-logging A0) :- (get-option log tt , A1 = tt ;\n get-option log.raw tt , A1 = ff), (!), \n (log.private.logger A2 A1 => A0), (log.private.logger-close A2), \n (std.intersperse coq.pp.spc A2 A3), \n (coq.pp->string (coq.pp.box (coq.pp.v 0) A3) A4), (coq.say (* \n A4 \n*)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 283, "column": 0, "character": 11151 @@ -20967,13 +19976,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -20988,8 +19995,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -21021,8 +20027,7 @@ "Inference", { "current_goal_id": 1198, - "current_goal_text": - "with-logging\n (instance.declare-const _ \n (app\n [global (const «IsSelfA'.phant_Build»), global (indt «nat»), \n global (indc «O»), fun `x` X0 c0 \\ c0]) (arity X1) _)", + "current_goal_text": "with-logging\n (instance.declare-const _ \n (app\n [global (const «IsSelfA'.phant_Build»), global (indt «nat»), \n global (indc «O»), fun `x` X0 c0 \\ c0]) (arity X1) _)", "current_goal_predicate": "with-logging", "failed_attempts": [], "successful_attempts": [ @@ -21035,8 +20040,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -21053,8 +20057,7 @@ }, "siblings": [ { - "goal_text": - "instance.declare-const _ \n (app\n [global (const «IsSelfA'.phant_Build»), global (indt «nat»), \n global (indc «O»), fun `x` X0 c0 \\ c0]) (arity X1) _", + "goal_text": "instance.declare-const _ \n (app\n [global (const «IsSelfA'.phant_Build»), global (indt «nat»), \n global (indc «O»), fun `x` X0 c0 \\ c0]) (arity X1) _", "goal_id": 1242 } ], @@ -21071,8 +20074,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -21097,13 +20099,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -21118,8 +20118,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -21151,8 +20150,7 @@ "Inference", { "current_goal_id": 1242, - "current_goal_text": - "instance.declare-const _ \n (app\n [global (const «IsSelfA'.phant_Build»), global (indt «nat»), \n global (indc «O»), fun `x` X0 c0 \\ c0]) (arity X1) _", + "current_goal_text": "instance.declare-const _ \n (app\n [global (const «IsSelfA'.phant_Build»), global (indt «nat»), \n global (indc «O»), fun `x` X0 c0 \\ c0]) (arity X1) _", "current_goal_predicate": "instance.declare-const", "failed_attempts": [], "successful_attempts": [ @@ -21161,13 +20159,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -21186,8 +20182,7 @@ }, "siblings": [ { - "goal_text": - "std.do!\n [std.assert-ok! (coq.elaborate-arity-skeleton (arity X1) _ X69) \n Definition type illtyped, coq.arity->term X69 X70, \n std.assert-ok!\n (coq.elaborate-skeleton\n (app\n [global (const «IsSelfA'.phant_Build»), global (indt «nat»), \n global (indc «O»), fun `x` X0 c0 \\ c0]) X70 X71) \n Definition illtyped, \n if (X69 = arity X72) \n (if-verbose (coq.say HB: skipping section opening) , X73 = X71) \n (,\n (, (new_int X74) (std.any->string X74 X75) (X76 is hb_instance_ ^ X75)) \n (log.coq.env.begin-section X76) \n (instance.private.postulate-arity X69 [] X71 X73 X72)), \n std.assert! (coq.safe-dest-app X72 (global X77) X78) \n The type of the instance is not a factory, factory-alias->gref X77 X79, \n std.assert! (factory-nparams X79 X80) Not a factory synthesized by HB, \n instance.private.hack-section-discharging X73 X81, \n instance.private.optimize-body X81 X82, \n if (_ = _) \n (, (new_int X83) (std.any->string X83 X84) \n (X85 is HB_unnamed_factory_ ^ X84)) (X85 = _), \n log.coq.env.add-const-noimplicits-failondup X85 X82 X72 ff X86, \n X87 = global (const X86), std.drop X80 X78 [X88 | _], \n instance.private.check-non-forgetful-inheritance X88 X79, \n instance.private.declare-instance X79 X88 X87 X89 X90, \n if (X69 = arity _) true \n (if-verbose (header X91 , coq.say X91 closing instance section) ,\n log.coq.env.end-section-name X76), acc-clauses current X89]", + "goal_text": "std.do!\n [std.assert-ok! (coq.elaborate-arity-skeleton (arity X1) _ X69) \n Definition type illtyped, coq.arity->term X69 X70, \n std.assert-ok!\n (coq.elaborate-skeleton\n (app\n [global (const «IsSelfA'.phant_Build»), global (indt «nat»), \n global (indc «O»), fun `x` X0 c0 \\ c0]) X70 X71) \n Definition illtyped, \n if (X69 = arity X72) \n (if-verbose (coq.say HB: skipping section opening) , X73 = X71) \n (,\n (, (new_int X74) (std.any->string X74 X75) (X76 is hb_instance_ ^ X75)) \n (log.coq.env.begin-section X76) \n (instance.private.postulate-arity X69 [] X71 X73 X72)), \n std.assert! (coq.safe-dest-app X72 (global X77) X78) \n The type of the instance is not a factory, factory-alias->gref X77 X79, \n std.assert! (factory-nparams X79 X80) Not a factory synthesized by HB, \n instance.private.hack-section-discharging X73 X81, \n instance.private.optimize-body X81 X82, \n if (_ = _) \n (, (new_int X83) (std.any->string X83 X84) \n (X85 is HB_unnamed_factory_ ^ X84)) (X85 = _), \n log.coq.env.add-const-noimplicits-failondup X85 X82 X72 ff X86, \n X87 = global (const X86), std.drop X80 X78 [X88 | _], \n instance.private.check-non-forgetful-inheritance X88 X79, \n instance.private.declare-instance X79 X88 X87 X89 X90, \n if (X69 = arity _) true \n (if-verbose (header X91 , coq.say X91 closing instance section) ,\n log.coq.env.end-section-name X76), acc-clauses current X89]", "goal_id": 1243 } ], @@ -21200,13 +20195,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -21225,8 +20218,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -21251,13 +20243,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -21272,8 +20262,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -21305,8 +20294,7 @@ "Inference", { "current_goal_id": 1243, - "current_goal_text": - "std.do!\n [std.assert-ok! (coq.elaborate-arity-skeleton (arity X1) _ X69) \n Definition type illtyped, coq.arity->term X69 X70, \n std.assert-ok!\n (coq.elaborate-skeleton\n (app\n [global (const «IsSelfA'.phant_Build»), global (indt «nat»), \n global (indc «O»), fun `x` X0 c0 \\ c0]) X70 X71) \n Definition illtyped, \n if (X69 = arity X72) \n (if-verbose (coq.say HB: skipping section opening) , X73 = X71) \n (,\n (, (new_int X74) (std.any->string X74 X75) (X76 is hb_instance_ ^ X75)) \n (log.coq.env.begin-section X76) \n (instance.private.postulate-arity X69 [] X71 X73 X72)), \n std.assert! (coq.safe-dest-app X72 (global X77) X78) \n The type of the instance is not a factory, factory-alias->gref X77 X79, \n std.assert! (factory-nparams X79 X80) Not a factory synthesized by HB, \n instance.private.hack-section-discharging X73 X81, \n instance.private.optimize-body X81 X82, \n if (_ = _) \n (, (new_int X83) (std.any->string X83 X84) \n (X85 is HB_unnamed_factory_ ^ X84)) (X85 = _), \n log.coq.env.add-const-noimplicits-failondup X85 X82 X72 ff X86, \n X87 = global (const X86), std.drop X80 X78 [X88 | _], \n instance.private.check-non-forgetful-inheritance X88 X79, \n instance.private.declare-instance X79 X88 X87 X89 X90, \n if (X69 = arity _) true \n (if-verbose (header X91 , coq.say X91 closing instance section) ,\n log.coq.env.end-section-name X76), acc-clauses current X89]", + "current_goal_text": "std.do!\n [std.assert-ok! (coq.elaborate-arity-skeleton (arity X1) _ X69) \n Definition type illtyped, coq.arity->term X69 X70, \n std.assert-ok!\n (coq.elaborate-skeleton\n (app\n [global (const «IsSelfA'.phant_Build»), global (indt «nat»), \n global (indc «O»), fun `x` X0 c0 \\ c0]) X70 X71) \n Definition illtyped, \n if (X69 = arity X72) \n (if-verbose (coq.say HB: skipping section opening) , X73 = X71) \n (,\n (, (new_int X74) (std.any->string X74 X75) (X76 is hb_instance_ ^ X75)) \n (log.coq.env.begin-section X76) \n (instance.private.postulate-arity X69 [] X71 X73 X72)), \n std.assert! (coq.safe-dest-app X72 (global X77) X78) \n The type of the instance is not a factory, factory-alias->gref X77 X79, \n std.assert! (factory-nparams X79 X80) Not a factory synthesized by HB, \n instance.private.hack-section-discharging X73 X81, \n instance.private.optimize-body X81 X82, \n if (_ = _) \n (, (new_int X83) (std.any->string X83 X84) \n (X85 is HB_unnamed_factory_ ^ X84)) (X85 = _), \n log.coq.env.add-const-noimplicits-failondup X85 X82 X72 ff X86, \n X87 = global (const X86), std.drop X80 X78 [X88 | _], \n instance.private.check-non-forgetful-inheritance X88 X79, \n instance.private.declare-instance X79 X88 X87 X89 X90, \n if (X69 = arity _) true \n (if-verbose (header X91 , coq.say X91 closing instance section) ,\n log.coq.env.end-section-name X76), acc-clauses current X89]", "current_goal_predicate": "std.do!", "failed_attempts": [], "successful_attempts": [ @@ -21315,8 +20303,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", "rule_loc": [ "File", { @@ -21341,14 +20328,12 @@ }, "siblings": [ { - "goal_text": - "std.assert-ok! (coq.elaborate-arity-skeleton (arity X1) _ X69) \n Definition type illtyped", + "goal_text": "std.assert-ok! (coq.elaborate-arity-skeleton (arity X1) _ X69) \n Definition type illtyped", "goal_id": 1244 }, { "goal_text": "!", "goal_id": 1245 }, { - "goal_text": - "std.do!\n [coq.arity->term X69 X70, \n std.assert-ok!\n (coq.elaborate-skeleton\n (app\n [global (const «IsSelfA'.phant_Build»), global (indt «nat»), \n global (indc «O»), fun `x` X0 c0 \\ c0]) X70 X71) \n Definition illtyped, \n if (X69 = arity X72) \n (if-verbose (coq.say HB: skipping section opening) , X73 = X71) \n (,\n (, (new_int X74) (std.any->string X74 X75) (X76 is hb_instance_ ^ X75)) \n (log.coq.env.begin-section X76) \n (instance.private.postulate-arity X69 [] X71 X73 X72)), \n std.assert! (coq.safe-dest-app X72 (global X77) X78) \n The type of the instance is not a factory, factory-alias->gref X77 X79, \n std.assert! (factory-nparams X79 X80) Not a factory synthesized by HB, \n instance.private.hack-section-discharging X73 X81, \n instance.private.optimize-body X81 X82, \n if (_ = _) \n (, (new_int X83) (std.any->string X83 X84) \n (X85 is HB_unnamed_factory_ ^ X84)) (X85 = _), \n log.coq.env.add-const-noimplicits-failondup X85 X82 X72 ff X86, \n X87 = global (const X86), std.drop X80 X78 [X88 | _], \n instance.private.check-non-forgetful-inheritance X88 X79, \n instance.private.declare-instance X79 X88 X87 X89 X90, \n if (X69 = arity _) true \n (if-verbose (header X91 , coq.say X91 closing instance section) ,\n log.coq.env.end-section-name X76), acc-clauses current X89]", + "goal_text": "std.do!\n [coq.arity->term X69 X70, \n std.assert-ok!\n (coq.elaborate-skeleton\n (app\n [global (const «IsSelfA'.phant_Build»), global (indt «nat»), \n global (indc «O»), fun `x` X0 c0 \\ c0]) X70 X71) \n Definition illtyped, \n if (X69 = arity X72) \n (if-verbose (coq.say HB: skipping section opening) , X73 = X71) \n (,\n (, (new_int X74) (std.any->string X74 X75) (X76 is hb_instance_ ^ X75)) \n (log.coq.env.begin-section X76) \n (instance.private.postulate-arity X69 [] X71 X73 X72)), \n std.assert! (coq.safe-dest-app X72 (global X77) X78) \n The type of the instance is not a factory, factory-alias->gref X77 X79, \n std.assert! (factory-nparams X79 X80) Not a factory synthesized by HB, \n instance.private.hack-section-discharging X73 X81, \n instance.private.optimize-body X81 X82, \n if (_ = _) \n (, (new_int X83) (std.any->string X83 X84) \n (X85 is HB_unnamed_factory_ ^ X84)) (X85 = _), \n log.coq.env.add-const-noimplicits-failondup X85 X82 X72 ff X86, \n X87 = global (const X86), std.drop X80 X78 [X88 | _], \n instance.private.check-non-forgetful-inheritance X88 X79, \n instance.private.declare-instance X79 X88 X87 X89 X90, \n if (X69 = arity _) true \n (if-verbose (header X91 , coq.say X91 closing instance section) ,\n log.coq.env.end-section-name X76), acc-clauses current X89]", "goal_id": 1246 } ], @@ -21380,13 +20365,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -21405,8 +20388,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -21431,13 +20413,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -21452,8 +20432,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -21485,8 +20464,7 @@ "Inference", { "current_goal_id": 1244, - "current_goal_text": - "std.assert-ok! (coq.elaborate-arity-skeleton (arity X1) _ X69) \n Definition type illtyped", + "current_goal_text": "std.assert-ok! (coq.elaborate-arity-skeleton (arity X1) _ X69) \n Definition type illtyped", "current_goal_predicate": "std.assert-ok!", "failed_attempts": [], "successful_attempts": [ @@ -21495,8 +20473,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert-ok! A0 A1) :- (A0 A2), (!), \n (A2 = ok ; A2 = error A3 , std.fatal-error-w-data A1 A3), (!).", + "rule_text": "(std.assert-ok! A0 A1) :- (A0 A2), (!), \n (A2 = ok ; A2 = error A3 , std.fatal-error-w-data A1 A3), (!).", "rule_loc": [ "File", { @@ -21518,14 +20495,12 @@ }, "siblings": [ { - "goal_text": - "coq.elaborate-arity-skeleton (arity X1) _ X69 X92", + "goal_text": "coq.elaborate-arity-skeleton (arity X1) _ X69 X92", "goal_id": 1247 }, { "goal_text": "!", "goal_id": 1248 }, { - "goal_text": - "X92 = ok ;\n X92 = error X93 , std.fatal-error-w-data Definition type illtyped X93", + "goal_text": "X92 = ok ;\n X92 = error X93 , std.fatal-error-w-data Definition type illtyped X93", "goal_id": 1249 }, { "goal_text": "!", "goal_id": 1250 } @@ -21539,8 +20514,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert-ok! A0 A1) :- (A0 A2), (!), \n (A2 = ok ; A2 = error A3 , std.fatal-error-w-data A1 A3), (!).", + "rule_text": "(std.assert-ok! A0 A1) :- (A0 A2), (!), \n (A2 = ok ; A2 = error A3 , std.fatal-error-w-data A1 A3), (!).", "rule_loc": [ "File", { @@ -21578,13 +20552,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -21603,8 +20575,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -21629,13 +20600,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -21650,8 +20619,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -21683,8 +20651,7 @@ "Inference", { "current_goal_id": 1247, - "current_goal_text": - "coq.elaborate-arity-skeleton (arity X1) _ X69 X92", + "current_goal_text": "coq.elaborate-arity-skeleton (arity X1) _ X69 X92", "current_goal_predicate": "coq.elaborate-arity-skeleton", "failed_attempts": [], "successful_attempts": [ @@ -21693,8 +20660,7 @@ "rule": [ "UserRule", { - "rule_text": - "(coq.elaborate-arity-skeleton (arity A0) A1 (arity A2) A3) :- (coq.elaborate-ty-skeleton\n A0 A1 A2 A3).", + "rule_text": "(coq.elaborate-arity-skeleton (arity A0) A1 (arity A2) A3) :- (coq.elaborate-ty-skeleton\n A0 A1 A2 A3).", "rule_loc": [ "File", { @@ -21727,8 +20693,7 @@ "rule": [ "UserRule", { - "rule_text": - "(coq.elaborate-arity-skeleton (arity A0) A1 (arity A2) A3) :- (coq.elaborate-ty-skeleton\n A0 A1 A2 A3).", + "rule_text": "(coq.elaborate-arity-skeleton (arity A0) A1 (arity A2) A3) :- (coq.elaborate-ty-skeleton\n A0 A1 A2 A3).", "rule_loc": [ "File", { @@ -21747,8 +20712,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert-ok! A0 A1) :- (A0 A2), (!), \n (A2 = ok ; A2 = error A3 , std.fatal-error-w-data A1 A3), (!).", + "rule_text": "(std.assert-ok! A0 A1) :- (A0 A2), (!), \n (A2 = ok ; A2 = error A3 , std.fatal-error-w-data A1 A3), (!).", "rule_loc": [ "File", { @@ -21786,13 +20750,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -21811,8 +20773,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -21837,13 +20798,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -21858,8 +20817,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -21898,8 +20856,7 @@ { "attempt": { "rule": [ - "BuiltinRule", - [ "FFI", "coq.elaborate-ty-skeleton" ] + "BuiltinRule", [ "FFI", "coq.elaborate-ty-skeleton" ] ], "events": [] }, @@ -21910,8 +20867,7 @@ }, { "goal_text": "X94 = X96", "goal_id": 1253 }, { - "goal_text": - "declare-evar [] (X97) (sort (typ «interleave_context.403»)) (X96)", + "goal_text": "declare-evar [] (X97) (sort (typ «interleave_context.403»)) (X96)", "goal_id": 1254 }, { "goal_text": "X92 = ok", "goal_id": 1255 } @@ -21930,8 +20886,7 @@ "rule": [ "UserRule", { - "rule_text": - "(coq.elaborate-arity-skeleton (arity A0) A1 (arity A2) A3) :- (coq.elaborate-ty-skeleton\n A0 A1 A2 A3).", + "rule_text": "(coq.elaborate-arity-skeleton (arity A0) A1 (arity A2) A3) :- (coq.elaborate-ty-skeleton\n A0 A1 A2 A3).", "rule_loc": [ "File", { @@ -21950,8 +20905,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert-ok! A0 A1) :- (A0 A2), (!), \n (A2 = ok ; A2 = error A3 , std.fatal-error-w-data A1 A3), (!).", + "rule_text": "(std.assert-ok! A0 A1) :- (A0 A2), (!), \n (A2 = ok ; A2 = error A3 , std.fatal-error-w-data A1 A3), (!).", "rule_loc": [ "File", { @@ -21989,13 +20943,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -22014,8 +20966,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -22040,13 +20991,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -22061,8 +21010,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -22125,8 +21073,7 @@ "rule": [ "UserRule", { - "rule_text": - "(coq.elaborate-arity-skeleton (arity A0) A1 (arity A2) A3) :- (coq.elaborate-ty-skeleton\n A0 A1 A2 A3).", + "rule_text": "(coq.elaborate-arity-skeleton (arity A0) A1 (arity A2) A3) :- (coq.elaborate-ty-skeleton\n A0 A1 A2 A3).", "rule_loc": [ "File", { @@ -22145,8 +21092,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert-ok! A0 A1) :- (A0 A2), (!), \n (A2 = ok ; A2 = error A3 , std.fatal-error-w-data A1 A3), (!).", + "rule_text": "(std.assert-ok! A0 A1) :- (A0 A2), (!), \n (A2 = ok ; A2 = error A3 , std.fatal-error-w-data A1 A3), (!).", "rule_loc": [ "File", { @@ -22184,13 +21130,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -22209,8 +21153,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -22235,13 +21178,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -22256,8 +21197,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -22318,8 +21258,7 @@ "rule": [ "UserRule", { - "rule_text": - "(coq.elaborate-arity-skeleton (arity A0) A1 (arity A2) A3) :- (coq.elaborate-ty-skeleton\n A0 A1 A2 A3).", + "rule_text": "(coq.elaborate-arity-skeleton (arity A0) A1 (arity A2) A3) :- (coq.elaborate-ty-skeleton\n A0 A1 A2 A3).", "rule_loc": [ "File", { @@ -22338,8 +21277,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert-ok! A0 A1) :- (A0 A2), (!), \n (A2 = ok ; A2 = error A3 , std.fatal-error-w-data A1 A3), (!).", + "rule_text": "(std.assert-ok! A0 A1) :- (A0 A2), (!), \n (A2 = ok ; A2 = error A3 , std.fatal-error-w-data A1 A3), (!).", "rule_loc": [ "File", { @@ -22377,13 +21315,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -22402,8 +21338,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -22428,13 +21363,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -22449,8 +21382,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -22482,8 +21414,7 @@ "Inference", { "current_goal_id": 1254, - "current_goal_text": - "declare-evar [] (X97) (sort (typ «interleave_context.403»)) (X96)", + "current_goal_text": "declare-evar [] (X97) (sort (typ «interleave_context.403»)) (X96)", "current_goal_predicate": "declare-evar", "failed_attempts": [], "successful_attempts": [ @@ -22492,8 +21423,7 @@ "rule": [ "UserRule", { - "rule_text": - "(declare-evar A0 A1 A2 A3) :- (declare_constraint (declare-evar A0 A1 A2 A3) \n [A1]).", + "rule_text": "(declare-evar A0 A1 A2 A3) :- (declare_constraint (declare-evar A0 A1 A2 A3) \n [A1]).", "rule_loc": [ "File", { @@ -22514,8 +21444,7 @@ }, "siblings": [ { - "goal_text": - "declare_constraint\n (declare-evar [] (X97) (sort (typ «interleave_context.403»)) (X96)) [\n X97]", + "goal_text": "declare_constraint\n (declare-evar [] (X97) (sort (typ «interleave_context.403»)) (X96)) [\n X97]", "goal_id": 1256 } ], @@ -22528,8 +21457,7 @@ "rule": [ "UserRule", { - "rule_text": - "(declare-evar A0 A1 A2 A3) :- (declare_constraint (declare-evar A0 A1 A2 A3) \n [A1]).", + "rule_text": "(declare-evar A0 A1 A2 A3) :- (declare_constraint (declare-evar A0 A1 A2 A3) \n [A1]).", "rule_loc": [ "File", { @@ -22553,8 +21481,7 @@ "rule": [ "UserRule", { - "rule_text": - "(coq.elaborate-arity-skeleton (arity A0) A1 (arity A2) A3) :- (coq.elaborate-ty-skeleton\n A0 A1 A2 A3).", + "rule_text": "(coq.elaborate-arity-skeleton (arity A0) A1 (arity A2) A3) :- (coq.elaborate-ty-skeleton\n A0 A1 A2 A3).", "rule_loc": [ "File", { @@ -22573,8 +21500,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert-ok! A0 A1) :- (A0 A2), (!), \n (A2 = ok ; A2 = error A3 , std.fatal-error-w-data A1 A3), (!).", + "rule_text": "(std.assert-ok! A0 A1) :- (A0 A2), (!), \n (A2 = ok ; A2 = error A3 , std.fatal-error-w-data A1 A3), (!).", "rule_loc": [ "File", { @@ -22612,13 +21538,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -22637,8 +21561,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -22663,13 +21586,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -22684,8 +21605,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -22717,11 +21637,9 @@ "Suspend", { "suspend_goal_id": 1256, - "suspend_goal_text": - "declare_constraint\n (declare-evar [] (X97) (sort (typ «interleave_context.403»)) (X96)) [\n X97]", + "suspend_goal_text": "declare_constraint\n (declare-evar [] (X97) (sort (typ «interleave_context.403»)) (X96)) [\n X97]", "suspend_sibling": { - "goal_text": - "declare-evar [] (X97) (sort (typ «interleave_context.403»)) (X96)", + "goal_text": "declare-evar [] (X97) (sort (typ «interleave_context.403»)) (X96)", "goal_id": 1257 }, "suspend_stack": [ @@ -22734,8 +21652,7 @@ "rule": [ "UserRule", { - "rule_text": - "(declare-evar A0 A1 A2 A3) :- (declare_constraint (declare-evar A0 A1 A2 A3) \n [A1]).", + "rule_text": "(declare-evar A0 A1 A2 A3) :- (declare_constraint (declare-evar A0 A1 A2 A3) \n [A1]).", "rule_loc": [ "File", { @@ -22759,8 +21676,7 @@ "rule": [ "UserRule", { - "rule_text": - "(coq.elaborate-arity-skeleton (arity A0) A1 (arity A2) A3) :- (coq.elaborate-ty-skeleton\n A0 A1 A2 A3).", + "rule_text": "(coq.elaborate-arity-skeleton (arity A0) A1 (arity A2) A3) :- (coq.elaborate-ty-skeleton\n A0 A1 A2 A3).", "rule_loc": [ "File", { @@ -22779,8 +21695,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert-ok! A0 A1) :- (A0 A2), (!), \n (A2 = ok ; A2 = error A3 , std.fatal-error-w-data A1 A3), (!).", + "rule_text": "(std.assert-ok! A0 A1) :- (A0 A2), (!), \n (A2 = ok ; A2 = error A3 , std.fatal-error-w-data A1 A3), (!).", "rule_loc": [ "File", { @@ -22818,13 +21733,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -22843,8 +21756,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -22869,13 +21781,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -22890,8 +21800,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -22926,8 +21835,7 @@ "chr_successful_attempts": [ { "chr_attempt": { - "chr_text": - " \\ (declare-evar A0 A1 A2 A3) <=> (A0 => evar A1 A2 A3)", + "chr_text": " \\ (declare-evar A0 A1 A2 A3) <=> (A0 => evar A1 A2 A3)", "chr_loc": { "filename": "coq-builtin.elpi", "line": 178, @@ -22939,8 +21847,7 @@ "step_id": 0, "runtime_id": 9, "step": [ - "Init", - { "goal_text": "true", "goal_id": 1259 } + "Init", { "goal_text": "true", "goal_id": 1259 } ], "color": "Grey" }, @@ -23009,8 +21916,7 @@ "chr_removed_goals": [ 1257 ], "chr_new_goals": [ { - "goal_text": - "_ => [] => evar X97 (sort (typ «interleave_context.403»)) X96", + "goal_text": "_ => [] => evar X97 (sort (typ «interleave_context.403»)) X96", "goal_id": 1260 } ] @@ -23018,8 +21924,7 @@ ], "chr_store_before": [ { - "goal_text": - " declare-evar [] (X97) (sort (typ «interleave_context.403»)) (X96) /* suspended on X97 */", + "goal_text": " declare-evar [] (X97) (sort (typ «interleave_context.403»)) (X96) /* suspended on X97 */", "goal_id": 1257 } ], @@ -23035,8 +21940,7 @@ "Inference", { "current_goal_id": 1260, - "current_goal_text": - "_ => [] => evar X97 (sort (typ «interleave_context.403»)) X96", + "current_goal_text": "_ => [] => evar X97 (sort (typ «interleave_context.403»)) X96", "current_goal_predicate": "=>", "failed_attempts": [], "successful_attempts": [ @@ -23047,8 +21951,7 @@ }, "siblings": [ { - "goal_text": - "[] => evar X97 (sort (typ «interleave_context.403»)) X96", + "goal_text": "[] => evar X97 (sort (typ «interleave_context.403»)) X96", "goal_id": 1261 } ], @@ -23074,8 +21977,7 @@ "Inference", { "current_goal_id": 1261, - "current_goal_text": - "[] => evar X97 (sort (typ «interleave_context.403»)) X96", + "current_goal_text": "[] => evar X97 (sort (typ «interleave_context.403»)) X96", "current_goal_predicate": "=>", "failed_attempts": [], "successful_attempts": [ @@ -23086,8 +21988,7 @@ }, "siblings": [ { - "goal_text": - "evar X97 (sort (typ «interleave_context.403»)) X96", + "goal_text": "evar X97 (sort (typ «interleave_context.403»)) X96", "goal_id": 1262 } ], @@ -23118,8 +22019,7 @@ "Inference", { "current_goal_id": 1262, - "current_goal_text": - "evar X97 (sort (typ «interleave_context.403»)) X96", + "current_goal_text": "evar X97 (sort (typ «interleave_context.403»)) X96", "current_goal_predicate": "evar", "failed_attempts": [], "successful_attempts": [ @@ -23128,8 +22028,7 @@ "rule": [ "UserRule", { - "rule_text": - "(evar (as uvar A0) A1 A2) :- (!), \n (if (var A2) (declare_constraint (evar A0 A1 A2) [A0, A2]) true).", + "rule_text": "(evar (as uvar A0) A1 A2) :- (!), \n (if (var A2) (declare_constraint (evar A0 A1 A2) [A0, A2]) true).", "rule_loc": [ "File", { @@ -23150,8 +22049,7 @@ "siblings": [ { "goal_text": "!", "goal_id": 1263 }, { - "goal_text": - "if (var X96) \n (declare_constraint (evar X97 (sort (typ «interleave_context.403»)) X96) \n [X97, X96]) true", + "goal_text": "if (var X96) \n (declare_constraint (evar X97 (sort (typ «interleave_context.403»)) X96) \n [X97, X96]) true", "goal_id": 1264 } ], @@ -23164,8 +22062,7 @@ "rule": [ "UserRule", { - "rule_text": - "(evar (as uvar A0) A1 A2) :- (!), \n (if (var A2) (declare_constraint (evar A0 A1 A2) [A0, A2]) true).", + "rule_text": "(evar (as uvar A0) A1 A2) :- (!), \n (if (var A2) (declare_constraint (evar A0 A1 A2) [A0, A2]) true).", "rule_loc": [ "File", { @@ -23205,8 +22102,7 @@ "cut_victims": [ { "cut_branch_for_goal": { - "goal_text": - "evar X97 (sort (typ «interleave_context.403»)) X96", + "goal_text": "evar X97 (sort (typ «interleave_context.403»)) X96", "goal_id": 1262 }, "cut_branch": { @@ -23234,8 +22130,7 @@ "Inference", { "current_goal_id": 1264, - "current_goal_text": - "if (var X96) \n (declare_constraint (evar X97 (sort (typ «interleave_context.403»)) X96) \n [X97, X96]) true", + "current_goal_text": "if (var X96) \n (declare_constraint (evar X97 (sort (typ «interleave_context.403»)) X96) \n [X97, X96]) true", "current_goal_predicate": "if", "failed_attempts": [], "successful_attempts": [ @@ -23268,8 +22163,7 @@ { "goal_text": "var X96", "goal_id": 1265 }, { "goal_text": "!", "goal_id": 1266 }, { - "goal_text": - "declare_constraint (evar X97 (sort (typ «interleave_context.403»)) X96) \n [X97, X96]", + "goal_text": "declare_constraint (evar X97 (sort (typ «interleave_context.403»)) X96) \n [X97, X96]", "goal_id": 1267 } ], @@ -23301,8 +22195,7 @@ "rule": [ "UserRule", { - "rule_text": - "(evar (as uvar A0) A1 A2) :- (!), \n (if (var A2) (declare_constraint (evar A0 A1 A2) [A0, A2]) true).", + "rule_text": "(evar (as uvar A0) A1 A2) :- (!), \n (if (var A2) (declare_constraint (evar A0 A1 A2) [A0, A2]) true).", "rule_loc": [ "File", { @@ -23382,8 +22275,7 @@ "rule": [ "UserRule", { - "rule_text": - "(evar (as uvar A0) A1 A2) :- (!), \n (if (var A2) (declare_constraint (evar A0 A1 A2) [A0, A2]) true).", + "rule_text": "(evar (as uvar A0) A1 A2) :- (!), \n (if (var A2) (declare_constraint (evar A0 A1 A2) [A0, A2]) true).", "rule_loc": [ "File", { @@ -23423,8 +22315,7 @@ "cut_victims": [ { "cut_branch_for_goal": { - "goal_text": - "if (var X96) \n (declare_constraint (evar X97 (sort (typ «interleave_context.403»)) X96) \n [X97, X96]) true", + "goal_text": "if (var X96) \n (declare_constraint (evar X97 (sort (typ «interleave_context.403»)) X96) \n [X97, X96]) true", "goal_id": 1264 }, "cut_branch": { @@ -23452,8 +22343,7 @@ "Suspend", { "suspend_goal_id": 1267, - "suspend_goal_text": - "declare_constraint (evar X97 (sort (typ «interleave_context.403»)) X96) \n [X97, X96]", + "suspend_goal_text": "declare_constraint (evar X97 (sort (typ «interleave_context.403»)) X96) \n [X97, X96]", "suspend_sibling": { "goal_text": "evar X97 (sort (typ «interleave_context.403»)) X96", "goal_id": 1268 @@ -23487,8 +22377,7 @@ "rule": [ "UserRule", { - "rule_text": - "(evar (as uvar A0) A1 A2) :- (!), \n (if (var A2) (declare_constraint (evar A0 A1 A2) [A0, A2]) true).", + "rule_text": "(evar (as uvar A0) A1 A2) :- (!), \n (if (var A2) (declare_constraint (evar A0 A1 A2) [A0, A2]) true).", "rule_loc": [ "File", { @@ -23554,8 +22443,7 @@ "rule": [ "UserRule", { - "rule_text": - "(coq.elaborate-arity-skeleton (arity A0) A1 (arity A2) A3) :- (coq.elaborate-ty-skeleton\n A0 A1 A2 A3).", + "rule_text": "(coq.elaborate-arity-skeleton (arity A0) A1 (arity A2) A3) :- (coq.elaborate-ty-skeleton\n A0 A1 A2 A3).", "rule_loc": [ "File", { @@ -23574,8 +22462,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert-ok! A0 A1) :- (A0 A2), (!), \n (A2 = ok ; A2 = error A3 , std.fatal-error-w-data A1 A3), (!).", + "rule_text": "(std.assert-ok! A0 A1) :- (A0 A2), (!), \n (A2 = ok ; A2 = error A3 , std.fatal-error-w-data A1 A3), (!).", "rule_loc": [ "File", { @@ -23613,13 +22500,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -23638,8 +22523,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -23664,13 +22548,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -23685,8 +22567,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -23721,13 +22602,11 @@ "cut_victims": [ { "cut_branch_for_goal": { - "goal_text": - "std.assert-ok! (coq.elaborate-arity-skeleton (arity X1) _ X69) \n Definition type illtyped", + "goal_text": "std.assert-ok! (coq.elaborate-arity-skeleton (arity X1) _ X69) \n Definition type illtyped", "goal_id": 1244 }, "cut_branch": { - "rule_text": - "(std.assert-ok! _ A0) :- (std.fatal-error-w-data A0 no diagnostic returned).", + "rule_text": "(std.assert-ok! _ A0) :- (std.fatal-error-w-data A0 no diagnostic returned).", "rule_loc": [ "File", { @@ -23751,8 +22630,7 @@ "Inference", { "current_goal_id": 1249, - "current_goal_text": - "ok = ok ;\n ok = error X93 , std.fatal-error-w-data Definition type illtyped X93", + "current_goal_text": "ok = ok ;\n ok = error X93 , std.fatal-error-w-data Definition type illtyped X93", "current_goal_predicate": ";", "failed_attempts": [], "successful_attempts": [ @@ -23804,8 +22682,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert-ok! A0 A1) :- (A0 A2), (!), \n (A2 = ok ; A2 = error A3 , std.fatal-error-w-data A1 A3), (!).", + "rule_text": "(std.assert-ok! A0 A1) :- (A0 A2), (!), \n (A2 = ok ; A2 = error A3 , std.fatal-error-w-data A1 A3), (!).", "rule_loc": [ "File", { @@ -23843,13 +22720,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -23868,8 +22743,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -23894,13 +22768,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -23915,8 +22787,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -23991,8 +22862,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert-ok! A0 A1) :- (A0 A2), (!), \n (A2 = ok ; A2 = error A3 , std.fatal-error-w-data A1 A3), (!).", + "rule_text": "(std.assert-ok! A0 A1) :- (A0 A2), (!), \n (A2 = ok ; A2 = error A3 , std.fatal-error-w-data A1 A3), (!).", "rule_loc": [ "File", { @@ -24030,13 +22900,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -24055,8 +22923,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -24081,13 +22948,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -24102,8 +22967,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -24138,8 +23002,7 @@ "cut_victims": [ { "cut_branch_for_goal": { - "goal_text": - "X92 = ok ;\n X92 = error X93 , std.fatal-error-w-data Definition type illtyped X93", + "goal_text": "X92 = ok ;\n X92 = error X93 , std.fatal-error-w-data Definition type illtyped X93", "goal_id": 1249 }, "cut_branch": { @@ -24173,8 +23036,7 @@ "Inference", { "current_goal_id": 1246, - "current_goal_text": - "std.do!\n [coq.arity->term (arity (X96)) X70, \n std.assert-ok!\n (coq.elaborate-skeleton\n (app\n [global (const «IsSelfA'.phant_Build»), global (indt «nat»), \n global (indc «O»), fun `x` X0 c0 \\ c0]) X70 X71) \n Definition illtyped, \n if (arity (X96) = arity X72) \n (if-verbose (coq.say HB: skipping section opening) , X73 = X71) \n (,\n (, (new_int X74) (std.any->string X74 X75) (X76 is hb_instance_ ^ X75)) \n (log.coq.env.begin-section X76) \n (instance.private.postulate-arity (arity (X96)) [] X71 X73 X72)), \n std.assert! (coq.safe-dest-app X72 (global X77) X78) \n The type of the instance is not a factory, factory-alias->gref X77 X79, \n std.assert! (factory-nparams X79 X80) Not a factory synthesized by HB, \n instance.private.hack-section-discharging X73 X81, \n instance.private.optimize-body X81 X82, \n if (_ = _) \n (, (new_int X83) (std.any->string X83 X84) \n (X85 is HB_unnamed_factory_ ^ X84)) (X85 = _), \n log.coq.env.add-const-noimplicits-failondup X85 X82 X72 ff X86, \n X87 = global (const X86), std.drop X80 X78 [X88 | _], \n instance.private.check-non-forgetful-inheritance X88 X79, \n instance.private.declare-instance X79 X88 X87 X89 X90, \n if (arity (X96) = arity _) true \n (if-verbose (header X91 , coq.say X91 closing instance section) ,\n log.coq.env.end-section-name X76), acc-clauses current X89]", + "current_goal_text": "std.do!\n [coq.arity->term (arity (X96)) X70, \n std.assert-ok!\n (coq.elaborate-skeleton\n (app\n [global (const «IsSelfA'.phant_Build»), global (indt «nat»), \n global (indc «O»), fun `x` X0 c0 \\ c0]) X70 X71) \n Definition illtyped, \n if (arity (X96) = arity X72) \n (if-verbose (coq.say HB: skipping section opening) , X73 = X71) \n (,\n (, (new_int X74) (std.any->string X74 X75) (X76 is hb_instance_ ^ X75)) \n (log.coq.env.begin-section X76) \n (instance.private.postulate-arity (arity (X96)) [] X71 X73 X72)), \n std.assert! (coq.safe-dest-app X72 (global X77) X78) \n The type of the instance is not a factory, factory-alias->gref X77 X79, \n std.assert! (factory-nparams X79 X80) Not a factory synthesized by HB, \n instance.private.hack-section-discharging X73 X81, \n instance.private.optimize-body X81 X82, \n if (_ = _) \n (, (new_int X83) (std.any->string X83 X84) \n (X85 is HB_unnamed_factory_ ^ X84)) (X85 = _), \n log.coq.env.add-const-noimplicits-failondup X85 X82 X72 ff X86, \n X87 = global (const X86), std.drop X80 X78 [X88 | _], \n instance.private.check-non-forgetful-inheritance X88 X79, \n instance.private.declare-instance X79 X88 X87 X89 X90, \n if (arity (X96) = arity _) true \n (if-verbose (header X91 , coq.say X91 closing instance section) ,\n log.coq.env.end-section-name X76), acc-clauses current X89]", "current_goal_predicate": "std.do!", "failed_attempts": [], "successful_attempts": [ @@ -24183,8 +23045,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", "rule_loc": [ "File", { @@ -24211,8 +23072,7 @@ }, { "goal_text": "!", "goal_id": 1271 }, { - "goal_text": - "std.do!\n [std.assert-ok!\n (coq.elaborate-skeleton\n (app\n [global (const «IsSelfA'.phant_Build»), global (indt «nat»), \n global (indc «O»), fun `x` X0 c0 \\ c0]) X70 X71) \n Definition illtyped, \n if (arity (X96) = arity X72) \n (if-verbose (coq.say HB: skipping section opening) , X73 = X71) \n (,\n (, (new_int X74) (std.any->string X74 X75) (X76 is hb_instance_ ^ X75)) \n (log.coq.env.begin-section X76) \n (instance.private.postulate-arity (arity (X96)) [] X71 X73 X72)), \n std.assert! (coq.safe-dest-app X72 (global X77) X78) \n The type of the instance is not a factory, factory-alias->gref X77 X79, \n std.assert! (factory-nparams X79 X80) Not a factory synthesized by HB, \n instance.private.hack-section-discharging X73 X81, \n instance.private.optimize-body X81 X82, \n if (_ = _) \n (, (new_int X83) (std.any->string X83 X84) \n (X85 is HB_unnamed_factory_ ^ X84)) (X85 = _), \n log.coq.env.add-const-noimplicits-failondup X85 X82 X72 ff X86, \n X87 = global (const X86), std.drop X80 X78 [X88 | _], \n instance.private.check-non-forgetful-inheritance X88 X79, \n instance.private.declare-instance X79 X88 X87 X89 X90, \n if (arity (X96) = arity _) true \n (if-verbose (header X91 , coq.say X91 closing instance section) ,\n log.coq.env.end-section-name X76), acc-clauses current X89]", + "goal_text": "std.do!\n [std.assert-ok!\n (coq.elaborate-skeleton\n (app\n [global (const «IsSelfA'.phant_Build»), global (indt «nat»), \n global (indc «O»), fun `x` X0 c0 \\ c0]) X70 X71) \n Definition illtyped, \n if (arity (X96) = arity X72) \n (if-verbose (coq.say HB: skipping section opening) , X73 = X71) \n (,\n (, (new_int X74) (std.any->string X74 X75) (X76 is hb_instance_ ^ X75)) \n (log.coq.env.begin-section X76) \n (instance.private.postulate-arity (arity (X96)) [] X71 X73 X72)), \n std.assert! (coq.safe-dest-app X72 (global X77) X78) \n The type of the instance is not a factory, factory-alias->gref X77 X79, \n std.assert! (factory-nparams X79 X80) Not a factory synthesized by HB, \n instance.private.hack-section-discharging X73 X81, \n instance.private.optimize-body X81 X82, \n if (_ = _) \n (, (new_int X83) (std.any->string X83 X84) \n (X85 is HB_unnamed_factory_ ^ X84)) (X85 = _), \n log.coq.env.add-const-noimplicits-failondup X85 X82 X72 ff X86, \n X87 = global (const X86), std.drop X80 X78 [X88 | _], \n instance.private.check-non-forgetful-inheritance X88 X79, \n instance.private.declare-instance X79 X88 X87 X89 X90, \n if (arity (X96) = arity _) true \n (if-verbose (header X91 , coq.say X91 closing instance section) ,\n log.coq.env.end-section-name X76), acc-clauses current X89]", "goal_id": 1272 } ], @@ -24263,13 +23123,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -24288,8 +23146,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -24314,13 +23171,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -24335,8 +23190,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -24390,8 +23244,7 @@ } ], "events": [ - [ "Assign", "A0 := X96" ], - [ "Assign", "X70 := X96" ] + [ "Assign", "A0 := X96" ], [ "Assign", "X70 := X96" ] ] }, "siblings": [], @@ -24461,13 +23314,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -24486,8 +23337,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -24512,13 +23362,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -24533,8 +23381,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -24572,8 +23419,7 @@ "Inference", { "current_goal_id": 1272, - "current_goal_text": - "std.do!\n [std.assert-ok!\n (coq.elaborate-skeleton\n (app\n [global (const «IsSelfA'.phant_Build»), global (indt «nat»), \n global (indc «O»), fun `x` X0 c0 \\ c0]) (X96) X71) \n Definition illtyped, \n if (arity (X96) = arity X72) \n (if-verbose (coq.say HB: skipping section opening) , X73 = X71) \n (,\n (, (new_int X74) (std.any->string X74 X75) (X76 is hb_instance_ ^ X75)) \n (log.coq.env.begin-section X76) \n (instance.private.postulate-arity (arity (X96)) [] X71 X73 X72)), \n std.assert! (coq.safe-dest-app X72 (global X77) X78) \n The type of the instance is not a factory, factory-alias->gref X77 X79, \n std.assert! (factory-nparams X79 X80) Not a factory synthesized by HB, \n instance.private.hack-section-discharging X73 X81, \n instance.private.optimize-body X81 X82, \n if (_ = _) \n (, (new_int X83) (std.any->string X83 X84) \n (X85 is HB_unnamed_factory_ ^ X84)) (X85 = _), \n log.coq.env.add-const-noimplicits-failondup X85 X82 X72 ff X86, \n X87 = global (const X86), std.drop X80 X78 [X88 | _], \n instance.private.check-non-forgetful-inheritance X88 X79, \n instance.private.declare-instance X79 X88 X87 X89 X90, \n if (arity (X96) = arity _) true \n (if-verbose (header X91 , coq.say X91 closing instance section) ,\n log.coq.env.end-section-name X76), acc-clauses current X89]", + "current_goal_text": "std.do!\n [std.assert-ok!\n (coq.elaborate-skeleton\n (app\n [global (const «IsSelfA'.phant_Build»), global (indt «nat»), \n global (indc «O»), fun `x` X0 c0 \\ c0]) (X96) X71) \n Definition illtyped, \n if (arity (X96) = arity X72) \n (if-verbose (coq.say HB: skipping section opening) , X73 = X71) \n (,\n (, (new_int X74) (std.any->string X74 X75) (X76 is hb_instance_ ^ X75)) \n (log.coq.env.begin-section X76) \n (instance.private.postulate-arity (arity (X96)) [] X71 X73 X72)), \n std.assert! (coq.safe-dest-app X72 (global X77) X78) \n The type of the instance is not a factory, factory-alias->gref X77 X79, \n std.assert! (factory-nparams X79 X80) Not a factory synthesized by HB, \n instance.private.hack-section-discharging X73 X81, \n instance.private.optimize-body X81 X82, \n if (_ = _) \n (, (new_int X83) (std.any->string X83 X84) \n (X85 is HB_unnamed_factory_ ^ X84)) (X85 = _), \n log.coq.env.add-const-noimplicits-failondup X85 X82 X72 ff X86, \n X87 = global (const X86), std.drop X80 X78 [X88 | _], \n instance.private.check-non-forgetful-inheritance X88 X79, \n instance.private.declare-instance X79 X88 X87 X89 X90, \n if (arity (X96) = arity _) true \n (if-verbose (header X91 , coq.say X91 closing instance section) ,\n log.coq.env.end-section-name X76), acc-clauses current X89]", "current_goal_predicate": "std.do!", "failed_attempts": [], "successful_attempts": [ @@ -24582,8 +23428,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", "rule_loc": [ "File", { @@ -24608,14 +23453,12 @@ }, "siblings": [ { - "goal_text": - "std.assert-ok!\n (coq.elaborate-skeleton\n (app\n [global (const «IsSelfA'.phant_Build»), global (indt «nat»), \n global (indc «O»), fun `x` X0 c0 \\ c0]) (X96) X71) \n Definition illtyped", + "goal_text": "std.assert-ok!\n (coq.elaborate-skeleton\n (app\n [global (const «IsSelfA'.phant_Build»), global (indt «nat»), \n global (indc «O»), fun `x` X0 c0 \\ c0]) (X96) X71) \n Definition illtyped", "goal_id": 1273 }, { "goal_text": "!", "goal_id": 1274 }, { - "goal_text": - "std.do!\n [if (arity (X96) = arity X72) \n (if-verbose (coq.say HB: skipping section opening) , X73 = X71) \n (,\n (, (new_int X74) (std.any->string X74 X75) (X76 is hb_instance_ ^ X75)) \n (log.coq.env.begin-section X76) \n (instance.private.postulate-arity (arity (X96)) [] X71 X73 X72)), \n std.assert! (coq.safe-dest-app X72 (global X77) X78) \n The type of the instance is not a factory, factory-alias->gref X77 X79, \n std.assert! (factory-nparams X79 X80) Not a factory synthesized by HB, \n instance.private.hack-section-discharging X73 X81, \n instance.private.optimize-body X81 X82, \n if (_ = _) \n (, (new_int X83) (std.any->string X83 X84) \n (X85 is HB_unnamed_factory_ ^ X84)) (X85 = _), \n log.coq.env.add-const-noimplicits-failondup X85 X82 X72 ff X86, \n X87 = global (const X86), std.drop X80 X78 [X88 | _], \n instance.private.check-non-forgetful-inheritance X88 X79, \n instance.private.declare-instance X79 X88 X87 X89 X90, \n if (arity (X96) = arity _) true \n (if-verbose (header X91 , coq.say X91 closing instance section) ,\n log.coq.env.end-section-name X76), acc-clauses current X89]", + "goal_text": "std.do!\n [if (arity (X96) = arity X72) \n (if-verbose (coq.say HB: skipping section opening) , X73 = X71) \n (,\n (, (new_int X74) (std.any->string X74 X75) (X76 is hb_instance_ ^ X75)) \n (log.coq.env.begin-section X76) \n (instance.private.postulate-arity (arity (X96)) [] X71 X73 X72)), \n std.assert! (coq.safe-dest-app X72 (global X77) X78) \n The type of the instance is not a factory, factory-alias->gref X77 X79, \n std.assert! (factory-nparams X79 X80) Not a factory synthesized by HB, \n instance.private.hack-section-discharging X73 X81, \n instance.private.optimize-body X81 X82, \n if (_ = _) \n (, (new_int X83) (std.any->string X83 X84) \n (X85 is HB_unnamed_factory_ ^ X84)) (X85 = _), \n log.coq.env.add-const-noimplicits-failondup X85 X82 X72 ff X86, \n X87 = global (const X86), std.drop X80 X78 [X88 | _], \n instance.private.check-non-forgetful-inheritance X88 X79, \n instance.private.declare-instance X79 X88 X87 X89 X90, \n if (arity (X96) = arity _) true \n (if-verbose (header X91 , coq.say X91 closing instance section) ,\n log.coq.env.end-section-name X76), acc-clauses current X89]", "goal_id": 1275 } ], @@ -24685,13 +23528,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -24710,8 +23551,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -24736,13 +23576,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -24757,8 +23595,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -24790,8 +23627,7 @@ "Inference", { "current_goal_id": 1273, - "current_goal_text": - "std.assert-ok!\n (coq.elaborate-skeleton\n (app\n [global (const «IsSelfA'.phant_Build»), global (indt «nat»), \n global (indc «O»), fun `x` X0 c0 \\ c0]) (X96) X71) \n Definition illtyped", + "current_goal_text": "std.assert-ok!\n (coq.elaborate-skeleton\n (app\n [global (const «IsSelfA'.phant_Build»), global (indt «nat»), \n global (indc «O»), fun `x` X0 c0 \\ c0]) (X96) X71) \n Definition illtyped", "current_goal_predicate": "std.assert-ok!", "failed_attempts": [], "successful_attempts": [ @@ -24800,8 +23636,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert-ok! A0 A1) :- (A0 A2), (!), \n (A2 = ok ; A2 = error A3 , std.fatal-error-w-data A1 A3), (!).", + "rule_text": "(std.assert-ok! A0 A1) :- (A0 A2), (!), \n (A2 = ok ; A2 = error A3 , std.fatal-error-w-data A1 A3), (!).", "rule_loc": [ "File", { @@ -24823,14 +23658,12 @@ }, "siblings": [ { - "goal_text": - "coq.elaborate-skeleton\n (app\n [global (const «IsSelfA'.phant_Build»), global (indt «nat»), \n global (indc «O»), fun `x` X0 c0 \\ c0]) (X96) X71 X98", + "goal_text": "coq.elaborate-skeleton\n (app\n [global (const «IsSelfA'.phant_Build»), global (indt «nat»), \n global (indc «O»), fun `x` X0 c0 \\ c0]) (X96) X71 X98", "goal_id": 1276 }, { "goal_text": "!", "goal_id": 1277 }, { - "goal_text": - "X98 = ok ; X98 = error X99 , std.fatal-error-w-data Definition illtyped X99", + "goal_text": "X98 = ok ; X98 = error X99 , std.fatal-error-w-data Definition illtyped X99", "goal_id": 1278 }, { "goal_text": "!", "goal_id": 1279 } @@ -24844,8 +23677,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert-ok! A0 A1) :- (A0 A2), (!), \n (A2 = ok ; A2 = error A3 , std.fatal-error-w-data A1 A3), (!).", + "rule_text": "(std.assert-ok! A0 A1) :- (A0 A2), (!), \n (A2 = ok ; A2 = error A3 , std.fatal-error-w-data A1 A3), (!).", "rule_loc": [ "File", { @@ -24921,13 +23753,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -24946,8 +23776,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -24972,13 +23801,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -24993,8 +23820,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -25026,8 +23852,7 @@ "Inference", { "current_goal_id": 1276, - "current_goal_text": - "coq.elaborate-skeleton\n (app\n [global (const «IsSelfA'.phant_Build»), global (indt «nat»), \n global (indc «O»), fun `x` X0 c0 \\ c0]) (X96) X71 X98", + "current_goal_text": "coq.elaborate-skeleton\n (app\n [global (const «IsSelfA'.phant_Build»), global (indt «nat»), \n global (indc «O»), fun `x` X0 c0 \\ c0]) (X96) X71 X98", "current_goal_predicate": "coq.elaborate-skeleton", "failed_attempts": [], "successful_attempts": [ @@ -25038,13 +23863,11 @@ }, "siblings": [ { - "goal_text": - "X96 = app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]", + "goal_text": "X96 = app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]", "goal_id": 1280 }, { - "goal_text": - "X71 =\n app\n [global (const «IsSelfA'.phant_Build»), global (indt «nat»), \n global (indc «O»), fun `x` (global (indt «nat»)) c0 \\ c0]", + "goal_text": "X71 =\n app\n [global (const «IsSelfA'.phant_Build»), global (indt «nat»), \n global (indc «O»), fun `x` (global (indt «nat»)) c0 \\ c0]", "goal_id": 1281 }, { "goal_text": "X98 = ok", "goal_id": 1282 } @@ -25063,8 +23886,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert-ok! A0 A1) :- (A0 A2), (!), \n (A2 = ok ; A2 = error A3 , std.fatal-error-w-data A1 A3), (!).", + "rule_text": "(std.assert-ok! A0 A1) :- (A0 A2), (!), \n (A2 = ok ; A2 = error A3 , std.fatal-error-w-data A1 A3), (!).", "rule_loc": [ "File", { @@ -25140,13 +23962,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -25165,8 +23985,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -25191,13 +24010,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -25212,8 +24029,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -25245,8 +24061,7 @@ "Inference", { "current_goal_id": 1280, - "current_goal_text": - "X96 = app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]", + "current_goal_text": "X96 = app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]", "current_goal_predicate": "=", "failed_attempts": [], "successful_attempts": [ @@ -25281,8 +24096,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert-ok! A0 A1) :- (A0 A2), (!), \n (A2 = ok ; A2 = error A3 , std.fatal-error-w-data A1 A3), (!).", + "rule_text": "(std.assert-ok! A0 A1) :- (A0 A2), (!), \n (A2 = ok ; A2 = error A3 , std.fatal-error-w-data A1 A3), (!).", "rule_loc": [ "File", { @@ -25358,13 +24172,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -25383,8 +24195,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -25409,13 +24220,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -25430,8 +24239,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -25463,8 +24271,7 @@ "Resume", [ { - "goal_text": - "evar X97 (sort (typ «interleave_context.403»)) \n (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)])", + "goal_text": "evar X97 (sort (typ «interleave_context.403»)) \n (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)])", "goal_id": 1268 } ] @@ -25478,8 +24285,7 @@ "Inference", { "current_goal_id": 1268, - "current_goal_text": - "evar X97 (sort (typ «interleave_context.403»)) \n (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)])", + "current_goal_text": "evar X97 (sort (typ «interleave_context.403»)) \n (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)])", "current_goal_predicate": "evar", "failed_attempts": [], "successful_attempts": [ @@ -25488,8 +24294,7 @@ "rule": [ "UserRule", { - "rule_text": - "(evar (as uvar A0) A1 A2) :- (!), \n (if (var A2) (declare_constraint (evar A0 A1 A2) [A0, A2]) true).", + "rule_text": "(evar (as uvar A0) A1 A2) :- (!), \n (if (var A2) (declare_constraint (evar A0 A1 A2) [A0, A2]) true).", "rule_loc": [ "File", { @@ -25513,8 +24318,7 @@ "siblings": [ { "goal_text": "!", "goal_id": 1283 }, { - "goal_text": - "if (var (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)])) \n (declare_constraint\n (evar X97 (sort (typ «interleave_context.403»)) \n (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)])) \n [X97, app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]]) \n true", + "goal_text": "if (var (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)])) \n (declare_constraint\n (evar X97 (sort (typ «interleave_context.403»)) \n (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)])) \n [X97, app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]]) \n true", "goal_id": 1284 } ], @@ -25527,8 +24331,7 @@ "rule": [ "UserRule", { - "rule_text": - "(evar (as uvar A0) A1 A2) :- (!), \n (if (var A2) (declare_constraint (evar A0 A1 A2) [A0, A2]) true).", + "rule_text": "(evar (as uvar A0) A1 A2) :- (!), \n (if (var A2) (declare_constraint (evar A0 A1 A2) [A0, A2]) true).", "rule_loc": [ "File", { @@ -25576,8 +24379,7 @@ "rule": [ "UserRule", { - "rule_text": - "(evar (as uvar A0) A1 A2) :- (!), \n (if (var A2) (declare_constraint (evar A0 A1 A2) [A0, A2]) true).", + "rule_text": "(evar (as uvar A0) A1 A2) :- (!), \n (if (var A2) (declare_constraint (evar A0 A1 A2) [A0, A2]) true).", "rule_loc": [ "File", { @@ -25617,8 +24419,7 @@ "cut_victims": [ { "cut_branch_for_goal": { - "goal_text": - "evar X97 (sort (typ «interleave_context.403»)) X96", + "goal_text": "evar X97 (sort (typ «interleave_context.403»)) X96", "goal_id": 1268 }, "cut_branch": { @@ -25646,8 +24447,7 @@ "Inference", { "current_goal_id": 1284, - "current_goal_text": - "if (var (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)])) \n (declare_constraint\n (evar X97 (sort (typ «interleave_context.403»)) \n (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)])) \n [X97, app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]]) \n true", + "current_goal_text": "if (var (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)])) \n (declare_constraint\n (evar X97 (sort (typ «interleave_context.403»)) \n (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)])) \n [X97, app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]]) \n true", "current_goal_predicate": "if", "failed_attempts": [], "successful_attempts": [ @@ -25681,14 +24481,12 @@ }, "siblings": [ { - "goal_text": - "var (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)])", + "goal_text": "var (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)])", "goal_id": 1285 }, { "goal_text": "!", "goal_id": 1286 }, { - "goal_text": - "declare_constraint\n (evar X97 (sort (typ «interleave_context.403»)) \n (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)])) \n [X97, app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]]", + "goal_text": "declare_constraint\n (evar X97 (sort (typ «interleave_context.403»)) \n (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)])) \n [X97, app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]]", "goal_id": 1287 } ], @@ -25720,8 +24518,7 @@ "rule": [ "UserRule", { - "rule_text": - "(evar (as uvar A0) A1 A2) :- (!), \n (if (var A2) (declare_constraint (evar A0 A1 A2) [A0, A2]) true).", + "rule_text": "(evar (as uvar A0) A1 A2) :- (!), \n (if (var A2) (declare_constraint (evar A0 A1 A2) [A0, A2]) true).", "rule_loc": [ "File", { @@ -25769,8 +24566,7 @@ "rule": [ "UserRule", { - "rule_text": - "(evar (as uvar A0) A1 A2) :- (!), \n (if (var A2) (declare_constraint (evar A0 A1 A2) [A0, A2]) true).", + "rule_text": "(evar (as uvar A0) A1 A2) :- (!), \n (if (var A2) (declare_constraint (evar A0 A1 A2) [A0, A2]) true).", "rule_loc": [ "File", { @@ -25807,8 +24603,7 @@ "Inference", { "current_goal_id": 1285, - "current_goal_text": - "var (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)])", + "current_goal_text": "var (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)])", "current_goal_predicate": "var", "failed_attempts": [ { "rule": [ "BuiltinRule", [ "FFI", "var" ] ], "events": [] } @@ -25844,8 +24639,7 @@ "rule": [ "UserRule", { - "rule_text": - "(evar (as uvar A0) A1 A2) :- (!), \n (if (var A2) (declare_constraint (evar A0 A1 A2) [A0, A2]) true).", + "rule_text": "(evar (as uvar A0) A1 A2) :- (!), \n (if (var A2) (declare_constraint (evar A0 A1 A2) [A0, A2]) true).", "rule_loc": [ "File", { @@ -25893,8 +24687,7 @@ "rule": [ "UserRule", { - "rule_text": - "(evar (as uvar A0) A1 A2) :- (!), \n (if (var A2) (declare_constraint (evar A0 A1 A2) [A0, A2]) true).", + "rule_text": "(evar (as uvar A0) A1 A2) :- (!), \n (if (var A2) (declare_constraint (evar A0 A1 A2) [A0, A2]) true).", "rule_loc": [ "File", { @@ -25931,8 +24724,7 @@ "Inference", { "current_goal_id": 1284, - "current_goal_text": - "if (var (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)])) \n (declare_constraint\n (evar X97 (sort (typ «interleave_context.403»)) \n (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)])) \n [X97, app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]]) \n true", + "current_goal_text": "if (var (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)])) \n (declare_constraint\n (evar X97 (sort (typ «interleave_context.403»)) \n (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)])) \n [X97, app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]]) \n true", "current_goal_predicate": "if", "failed_attempts": [], "successful_attempts": [ @@ -25984,8 +24776,7 @@ "rule": [ "UserRule", { - "rule_text": - "(evar (as uvar A0) A1 A2) :- (!), \n (if (var A2) (declare_constraint (evar A0 A1 A2) [A0, A2]) true).", + "rule_text": "(evar (as uvar A0) A1 A2) :- (!), \n (if (var A2) (declare_constraint (evar A0 A1 A2) [A0, A2]) true).", "rule_loc": [ "File", { @@ -26033,8 +24824,7 @@ "rule": [ "UserRule", { - "rule_text": - "(evar (as uvar A0) A1 A2) :- (!), \n (if (var A2) (declare_constraint (evar A0 A1 A2) [A0, A2]) true).", + "rule_text": "(evar (as uvar A0) A1 A2) :- (!), \n (if (var A2) (declare_constraint (evar A0 A1 A2) [A0, A2]) true).", "rule_loc": [ "File", { @@ -26142,8 +24932,7 @@ "rule": [ "UserRule", { - "rule_text": - "(evar (as uvar A0) A1 A2) :- (!), \n (if (var A2) (declare_constraint (evar A0 A1 A2) [A0, A2]) true).", + "rule_text": "(evar (as uvar A0) A1 A2) :- (!), \n (if (var A2) (declare_constraint (evar A0 A1 A2) [A0, A2]) true).", "rule_loc": [ "File", { @@ -26191,8 +24980,7 @@ "rule": [ "UserRule", { - "rule_text": - "(evar (as uvar A0) A1 A2) :- (!), \n (if (var A2) (declare_constraint (evar A0 A1 A2) [A0, A2]) true).", + "rule_text": "(evar (as uvar A0) A1 A2) :- (!), \n (if (var A2) (declare_constraint (evar A0 A1 A2) [A0, A2]) true).", "rule_loc": [ "File", { @@ -26229,8 +25017,7 @@ "Inference", { "current_goal_id": 1281, - "current_goal_text": - "X71 =\n app\n [global (const «IsSelfA'.phant_Build»), global (indt «nat»), \n global (indc «O»), fun `x` (global (indt «nat»)) c0 \\ c0]", + "current_goal_text": "X71 =\n app\n [global (const «IsSelfA'.phant_Build»), global (indt «nat»), \n global (indc «O»), fun `x` (global (indt «nat»)) c0 \\ c0]", "current_goal_predicate": "=", "failed_attempts": [], "successful_attempts": [ @@ -26264,8 +25051,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert-ok! A0 A1) :- (A0 A2), (!), \n (A2 = ok ; A2 = error A3 , std.fatal-error-w-data A1 A3), (!).", + "rule_text": "(std.assert-ok! A0 A1) :- (A0 A2), (!), \n (A2 = ok ; A2 = error A3 , std.fatal-error-w-data A1 A3), (!).", "rule_loc": [ "File", { @@ -26341,13 +25127,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -26366,8 +25150,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -26392,13 +25175,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -26413,8 +25194,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -26475,8 +25255,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert-ok! A0 A1) :- (A0 A2), (!), \n (A2 = ok ; A2 = error A3 , std.fatal-error-w-data A1 A3), (!).", + "rule_text": "(std.assert-ok! A0 A1) :- (A0 A2), (!), \n (A2 = ok ; A2 = error A3 , std.fatal-error-w-data A1 A3), (!).", "rule_loc": [ "File", { @@ -26552,13 +25331,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -26577,8 +25354,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -26603,13 +25379,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -26624,8 +25398,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -26660,13 +25433,11 @@ "cut_victims": [ { "cut_branch_for_goal": { - "goal_text": - "std.assert-ok!\n (coq.elaborate-skeleton\n (app\n [global (const «IsSelfA'.phant_Build»), global (indt «nat»), \n global (indc «O»), fun `x` X0 c0 \\ c0]) (X96) X71) \n Definition illtyped", + "goal_text": "std.assert-ok!\n (coq.elaborate-skeleton\n (app\n [global (const «IsSelfA'.phant_Build»), global (indt «nat»), \n global (indc «O»), fun `x` X0 c0 \\ c0]) (X96) X71) \n Definition illtyped", "goal_id": 1273 }, "cut_branch": { - "rule_text": - "(std.assert-ok! _ A0) :- (std.fatal-error-w-data A0 no diagnostic returned).", + "rule_text": "(std.assert-ok! _ A0) :- (std.fatal-error-w-data A0 no diagnostic returned).", "rule_loc": [ "File", { @@ -26690,8 +25461,7 @@ "Inference", { "current_goal_id": 1278, - "current_goal_text": - "ok = ok ; ok = error X99 , std.fatal-error-w-data Definition illtyped X99", + "current_goal_text": "ok = ok ; ok = error X99 , std.fatal-error-w-data Definition illtyped X99", "current_goal_predicate": ";", "failed_attempts": [], "successful_attempts": [ @@ -26743,8 +25513,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert-ok! A0 A1) :- (A0 A2), (!), \n (A2 = ok ; A2 = error A3 , std.fatal-error-w-data A1 A3), (!).", + "rule_text": "(std.assert-ok! A0 A1) :- (A0 A2), (!), \n (A2 = ok ; A2 = error A3 , std.fatal-error-w-data A1 A3), (!).", "rule_loc": [ "File", { @@ -26820,13 +25589,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -26845,8 +25612,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -26871,13 +25637,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -26892,8 +25656,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -26968,8 +25731,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert-ok! A0 A1) :- (A0 A2), (!), \n (A2 = ok ; A2 = error A3 , std.fatal-error-w-data A1 A3), (!).", + "rule_text": "(std.assert-ok! A0 A1) :- (A0 A2), (!), \n (A2 = ok ; A2 = error A3 , std.fatal-error-w-data A1 A3), (!).", "rule_loc": [ "File", { @@ -27045,13 +25807,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -27070,8 +25830,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -27096,13 +25855,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -27117,8 +25874,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -27153,8 +25909,7 @@ "cut_victims": [ { "cut_branch_for_goal": { - "goal_text": - "X98 = ok ; X98 = error X99 , std.fatal-error-w-data Definition illtyped X99", + "goal_text": "X98 = ok ; X98 = error X99 , std.fatal-error-w-data Definition illtyped X99", "goal_id": 1278 }, "cut_branch": { @@ -27188,8 +25943,7 @@ "Inference", { "current_goal_id": 1275, - "current_goal_text": - "std.do!\n [if\n (arity (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) =\n arity X72) \n (if-verbose (coq.say HB: skipping section opening) ,\n X73 =\n app\n [global (const «IsSelfA'.phant_Build»), global (indt «nat»), \n global (indc «O»), fun `x` (global (indt «nat»)) c0 \\ c0]) \n (,\n (, (new_int X74) (std.any->string X74 X75) (X76 is hb_instance_ ^ X75)) \n (log.coq.env.begin-section X76) \n (instance.private.postulate-arity\n (arity\n (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)])) \n [] \n (app\n [global (const «IsSelfA'.phant_Build»), global (indt «nat»), \n global (indc «O»), fun `x` (global (indt «nat»)) c0 \\ c0]) X73 \n X72)), \n std.assert! (coq.safe-dest-app X72 (global X77) X78) \n The type of the instance is not a factory, factory-alias->gref X77 X79, \n std.assert! (factory-nparams X79 X80) Not a factory synthesized by HB, \n instance.private.hack-section-discharging X73 X81, \n instance.private.optimize-body X81 X82, \n if (_ = _) \n (, (new_int X83) (std.any->string X83 X84) \n (X85 is HB_unnamed_factory_ ^ X84)) (X85 = _), \n log.coq.env.add-const-noimplicits-failondup X85 X82 X72 ff X86, \n X87 = global (const X86), std.drop X80 X78 [X88 | _], \n instance.private.check-non-forgetful-inheritance X88 X79, \n instance.private.declare-instance X79 X88 X87 X89 X90, \n if\n (arity (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) =\n arity _) true \n (if-verbose (header X91 , coq.say X91 closing instance section) ,\n log.coq.env.end-section-name X76), acc-clauses current X89]", + "current_goal_text": "std.do!\n [if\n (arity (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) =\n arity X72) \n (if-verbose (coq.say HB: skipping section opening) ,\n X73 =\n app\n [global (const «IsSelfA'.phant_Build»), global (indt «nat»), \n global (indc «O»), fun `x` (global (indt «nat»)) c0 \\ c0]) \n (,\n (, (new_int X74) (std.any->string X74 X75) (X76 is hb_instance_ ^ X75)) \n (log.coq.env.begin-section X76) \n (instance.private.postulate-arity\n (arity\n (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)])) \n [] \n (app\n [global (const «IsSelfA'.phant_Build»), global (indt «nat»), \n global (indc «O»), fun `x` (global (indt «nat»)) c0 \\ c0]) X73 \n X72)), \n std.assert! (coq.safe-dest-app X72 (global X77) X78) \n The type of the instance is not a factory, factory-alias->gref X77 X79, \n std.assert! (factory-nparams X79 X80) Not a factory synthesized by HB, \n instance.private.hack-section-discharging X73 X81, \n instance.private.optimize-body X81 X82, \n if (_ = _) \n (, (new_int X83) (std.any->string X83 X84) \n (X85 is HB_unnamed_factory_ ^ X84)) (X85 = _), \n log.coq.env.add-const-noimplicits-failondup X85 X82 X72 ff X86, \n X87 = global (const X86), std.drop X80 X78 [X88 | _], \n instance.private.check-non-forgetful-inheritance X88 X79, \n instance.private.declare-instance X79 X88 X87 X89 X90, \n if\n (arity (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) =\n arity _) true \n (if-verbose (header X91 , coq.say X91 closing instance section) ,\n log.coq.env.end-section-name X76), acc-clauses current X89]", "current_goal_predicate": "std.do!", "failed_attempts": [], "successful_attempts": [ @@ -27198,8 +25952,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", "rule_loc": [ "File", { @@ -27224,14 +25977,12 @@ }, "siblings": [ { - "goal_text": - "if\n (arity (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) =\n arity X72) \n (if-verbose (coq.say HB: skipping section opening) ,\n X73 =\n app\n [global (const «IsSelfA'.phant_Build»), global (indt «nat»), \n global (indc «O»), fun `x` (global (indt «nat»)) c0 \\ c0]) \n (, (, (new_int X74) (std.any->string X74 X75) (X76 is hb_instance_ ^ X75)) \n (log.coq.env.begin-section X76) \n (instance.private.postulate-arity\n (arity (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)])) \n [] \n (app\n [global (const «IsSelfA'.phant_Build»), global (indt «nat»), \n global (indc «O»), fun `x` (global (indt «nat»)) c0 \\ c0]) X73 \n X72))", + "goal_text": "if\n (arity (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) =\n arity X72) \n (if-verbose (coq.say HB: skipping section opening) ,\n X73 =\n app\n [global (const «IsSelfA'.phant_Build»), global (indt «nat»), \n global (indc «O»), fun `x` (global (indt «nat»)) c0 \\ c0]) \n (, (, (new_int X74) (std.any->string X74 X75) (X76 is hb_instance_ ^ X75)) \n (log.coq.env.begin-section X76) \n (instance.private.postulate-arity\n (arity (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)])) \n [] \n (app\n [global (const «IsSelfA'.phant_Build»), global (indt «nat»), \n global (indc «O»), fun `x` (global (indt «nat»)) c0 \\ c0]) X73 \n X72))", "goal_id": 1290 }, { "goal_text": "!", "goal_id": 1291 }, { - "goal_text": - "std.do!\n [std.assert! (coq.safe-dest-app X72 (global X77) X78) \n The type of the instance is not a factory, factory-alias->gref X77 X79, \n std.assert! (factory-nparams X79 X80) Not a factory synthesized by HB, \n instance.private.hack-section-discharging X73 X81, \n instance.private.optimize-body X81 X82, \n if (_ = _) \n (, (new_int X83) (std.any->string X83 X84) \n (X85 is HB_unnamed_factory_ ^ X84)) (X85 = _), \n log.coq.env.add-const-noimplicits-failondup X85 X82 X72 ff X86, \n X87 = global (const X86), std.drop X80 X78 [X88 | _], \n instance.private.check-non-forgetful-inheritance X88 X79, \n instance.private.declare-instance X79 X88 X87 X89 X90, \n if\n (arity (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) =\n arity _) true \n (if-verbose (header X91 , coq.say X91 closing instance section) ,\n log.coq.env.end-section-name X76), acc-clauses current X89]", + "goal_text": "std.do!\n [std.assert! (coq.safe-dest-app X72 (global X77) X78) \n The type of the instance is not a factory, factory-alias->gref X77 X79, \n std.assert! (factory-nparams X79 X80) Not a factory synthesized by HB, \n instance.private.hack-section-discharging X73 X81, \n instance.private.optimize-body X81 X82, \n if (_ = _) \n (, (new_int X83) (std.any->string X83 X84) \n (X85 is HB_unnamed_factory_ ^ X84)) (X85 = _), \n log.coq.env.add-const-noimplicits-failondup X85 X82 X72 ff X86, \n X87 = global (const X86), std.drop X80 X78 [X88 | _], \n instance.private.check-non-forgetful-inheritance X88 X79, \n instance.private.declare-instance X79 X88 X87 X89 X90, \n if\n (arity (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) =\n arity _) true \n (if-verbose (header X91 , coq.say X91 closing instance section) ,\n log.coq.env.end-section-name X76), acc-clauses current X89]", "goal_id": 1292 } ], @@ -27320,13 +26071,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -27345,8 +26094,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -27371,13 +26119,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -27392,8 +26138,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -27425,8 +26170,7 @@ "Inference", { "current_goal_id": 1290, - "current_goal_text": - "if\n (arity (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) =\n arity X72) \n (if-verbose (coq.say HB: skipping section opening) ,\n X73 =\n app\n [global (const «IsSelfA'.phant_Build»), global (indt «nat»), \n global (indc «O»), fun `x` (global (indt «nat»)) c0 \\ c0]) \n (, (, (new_int X74) (std.any->string X74 X75) (X76 is hb_instance_ ^ X75)) \n (log.coq.env.begin-section X76) \n (instance.private.postulate-arity\n (arity (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)])) \n [] \n (app\n [global (const «IsSelfA'.phant_Build»), global (indt «nat»), \n global (indc «O»), fun `x` (global (indt «nat»)) c0 \\ c0]) X73 \n X72))", + "current_goal_text": "if\n (arity (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) =\n arity X72) \n (if-verbose (coq.say HB: skipping section opening) ,\n X73 =\n app\n [global (const «IsSelfA'.phant_Build»), global (indt «nat»), \n global (indc «O»), fun `x` (global (indt «nat»)) c0 \\ c0]) \n (, (, (new_int X74) (std.any->string X74 X75) (X76 is hb_instance_ ^ X75)) \n (log.coq.env.begin-section X76) \n (instance.private.postulate-arity\n (arity (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)])) \n [] \n (app\n [global (const «IsSelfA'.phant_Build»), global (indt «nat»), \n global (indc «O»), fun `x` (global (indt «nat»)) c0 \\ c0]) X73 \n X72))", "current_goal_predicate": "if", "failed_attempts": [], "successful_attempts": [ @@ -27460,14 +26204,12 @@ }, "siblings": [ { - "goal_text": - "arity (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) =\n arity X72", + "goal_text": "arity (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) =\n arity X72", "goal_id": 1293 }, { "goal_text": "!", "goal_id": 1294 }, { - "goal_text": - "if-verbose (coq.say HB: skipping section opening) ,\n X73 =\n app\n [global (const «IsSelfA'.phant_Build»), global (indt «nat»), \n global (indc «O»), fun `x` (global (indt «nat»)) c0 \\ c0]", + "goal_text": "if-verbose (coq.say HB: skipping section opening) ,\n X73 =\n app\n [global (const «IsSelfA'.phant_Build»), global (indt «nat»), \n global (indc «O»), fun `x` (global (indt «nat»)) c0 \\ c0]", "goal_id": 1295 } ], @@ -27575,13 +26317,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -27600,8 +26340,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -27626,13 +26365,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -27647,8 +26384,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -27680,8 +26416,7 @@ "Inference", { "current_goal_id": 1293, - "current_goal_text": - "arity (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) =\n arity X72", + "current_goal_text": "arity (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) =\n arity X72", "current_goal_predicate": "=", "failed_attempts": [], "successful_attempts": [ @@ -27805,13 +26540,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -27830,8 +26563,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -27856,13 +26588,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -27877,8 +26607,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -27913,8 +26642,7 @@ "cut_victims": [ { "cut_branch_for_goal": { - "goal_text": - "if\n (arity (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) =\n arity X72) \n (if-verbose (coq.say HB: skipping section opening) ,\n X73 =\n app\n [global (const «IsSelfA'.phant_Build»), global (indt «nat»), \n global (indc «O»), fun `x` (global (indt «nat»)) c0 \\ c0]) \n (, (, (new_int X74) (std.any->string X74 X75) (X76 is hb_instance_ ^ X75)) \n (log.coq.env.begin-section X76) \n (instance.private.postulate-arity\n (arity (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)])) \n [] \n (app\n [global (const «IsSelfA'.phant_Build»), global (indt «nat»), \n global (indc «O»), fun `x` (global (indt «nat»)) c0 \\ c0]) X73 \n X72))", + "goal_text": "if\n (arity (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) =\n arity X72) \n (if-verbose (coq.say HB: skipping section opening) ,\n X73 =\n app\n [global (const «IsSelfA'.phant_Build»), global (indt «nat»), \n global (indc «O»), fun `x` (global (indt «nat»)) c0 \\ c0]) \n (, (, (new_int X74) (std.any->string X74 X75) (X76 is hb_instance_ ^ X75)) \n (log.coq.env.begin-section X76) \n (instance.private.postulate-arity\n (arity (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)])) \n [] \n (app\n [global (const «IsSelfA'.phant_Build»), global (indt «nat»), \n global (indc «O»), fun `x` (global (indt «nat»)) c0 \\ c0]) X73 \n X72))", "goal_id": 1290 }, "cut_branch": { @@ -27942,8 +26670,7 @@ "Inference", { "current_goal_id": 1295, - "current_goal_text": - "if-verbose (coq.say HB: skipping section opening) ,\n X73 =\n app\n [global (const «IsSelfA'.phant_Build»), global (indt «nat»), \n global (indc «O»), fun `x` (global (indt «nat»)) c0 \\ c0]", + "current_goal_text": "if-verbose (coq.say HB: skipping section opening) ,\n X73 =\n app\n [global (const «IsSelfA'.phant_Build»), global (indt «nat»), \n global (indc «O»), fun `x` (global (indt «nat»)) c0 \\ c0]", "current_goal_predicate": ",", "failed_attempts": [], "successful_attempts": [ @@ -27954,13 +26681,11 @@ }, "siblings": [ { - "goal_text": - "if-verbose (coq.say HB: skipping section opening)", + "goal_text": "if-verbose (coq.say HB: skipping section opening)", "goal_id": 1296 }, { - "goal_text": - "X73 =\n app\n [global (const «IsSelfA'.phant_Build»), global (indt «nat»), \n global (indc «O»), fun `x` (global (indt «nat»)) c0 \\ c0]", + "goal_text": "X73 =\n app\n [global (const «IsSelfA'.phant_Build»), global (indt «nat»), \n global (indc «O»), fun `x` (global (indt «nat»)) c0 \\ c0]", "goal_id": 1297 } ], @@ -28073,13 +26798,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -28098,8 +26821,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -28124,13 +26846,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -28145,8 +26865,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -28178,8 +26897,7 @@ "Inference", { "current_goal_id": 1296, - "current_goal_text": - "if-verbose (coq.say HB: skipping section opening)", + "current_goal_text": "if-verbose (coq.say HB: skipping section opening)", "current_goal_predicate": "if-verbose", "failed_attempts": [], "successful_attempts": [ @@ -28188,13 +26906,11 @@ "rule": [ "UserRule", { - "rule_text": - "(if-verbose A0) :- (get-option verbose tt), (!), A0.", + "rule_text": "(if-verbose A0) :- (get-option verbose tt), (!), A0.", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 51, "column": 0, "character": 1529 @@ -28223,13 +26939,11 @@ "rule": [ "UserRule", { - "rule_text": - "(if-verbose A0) :- (get-option verbose tt), (!), A0.", + "rule_text": "(if-verbose A0) :- (get-option verbose tt), (!), A0.", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 51, "column": 0, "character": 1529 @@ -28344,13 +27058,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -28369,8 +27081,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -28395,13 +27106,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -28416,8 +27125,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -28459,13 +27167,11 @@ "rule": [ "UserRule", { - "rule_text": - "(if-verbose A0) :- (get-option verbose tt), (!), A0.", + "rule_text": "(if-verbose A0) :- (get-option verbose tt), (!), A0.", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 51, "column": 0, "character": 1529 @@ -28580,13 +27286,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -28605,8 +27309,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -28631,13 +27334,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -28652,8 +27353,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -28685,8 +27385,7 @@ "Inference", { "current_goal_id": 1296, - "current_goal_text": - "if-verbose (coq.say HB: skipping section opening)", + "current_goal_text": "if-verbose (coq.say HB: skipping section opening)", "current_goal_predicate": "if-verbose", "failed_attempts": [], "successful_attempts": [ @@ -28699,8 +27398,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 52, "column": 0, "character": 1576 @@ -28724,8 +27422,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 52, "column": 0, "character": 1576 @@ -28840,13 +27537,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -28865,8 +27560,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -28891,13 +27585,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -28912,8 +27604,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -28945,8 +27636,7 @@ "Inference", { "current_goal_id": 1297, - "current_goal_text": - "X73 =\n app\n [global (const «IsSelfA'.phant_Build»), global (indt «nat»), \n global (indc «O»), fun `x` (global (indt «nat»)) c0 \\ c0]", + "current_goal_text": "X73 =\n app\n [global (const «IsSelfA'.phant_Build»), global (indt «nat»), \n global (indc «O»), fun `x` (global (indt «nat»)) c0 \\ c0]", "current_goal_predicate": "=", "failed_attempts": [], "successful_attempts": [ @@ -29075,13 +27765,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -29100,8 +27788,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -29126,13 +27813,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -29147,8 +27832,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -29186,8 +27870,7 @@ "Inference", { "current_goal_id": 1292, - "current_goal_text": - "std.do!\n [std.assert!\n (coq.safe-dest-app\n (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) \n (global X77) X78) The type of the instance is not a factory, \n factory-alias->gref X77 X79, \n std.assert! (factory-nparams X79 X80) Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n (app\n [global (const «IsSelfA'.phant_Build»), global (indt «nat»), \n global (indc «O»), fun `x` (global (indt «nat»)) c0 \\ c0]) X81, \n instance.private.optimize-body X81 X82, \n if (_ = _) \n (, (new_int X83) (std.any->string X83 X84) \n (X85 is HB_unnamed_factory_ ^ X84)) (X85 = _), \n log.coq.env.add-const-noimplicits-failondup X85 X82 \n (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) ff X86, \n X87 = global (const X86), std.drop X80 X78 [X88 | _], \n instance.private.check-non-forgetful-inheritance X88 X79, \n instance.private.declare-instance X79 X88 X87 X89 X90, \n if\n (arity (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) =\n arity _) true \n (if-verbose (header X91 , coq.say X91 closing instance section) ,\n log.coq.env.end-section-name X76), acc-clauses current X89]", + "current_goal_text": "std.do!\n [std.assert!\n (coq.safe-dest-app\n (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) \n (global X77) X78) The type of the instance is not a factory, \n factory-alias->gref X77 X79, \n std.assert! (factory-nparams X79 X80) Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n (app\n [global (const «IsSelfA'.phant_Build»), global (indt «nat»), \n global (indc «O»), fun `x` (global (indt «nat»)) c0 \\ c0]) X81, \n instance.private.optimize-body X81 X82, \n if (_ = _) \n (, (new_int X83) (std.any->string X83 X84) \n (X85 is HB_unnamed_factory_ ^ X84)) (X85 = _), \n log.coq.env.add-const-noimplicits-failondup X85 X82 \n (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) ff X86, \n X87 = global (const X86), std.drop X80 X78 [X88 | _], \n instance.private.check-non-forgetful-inheritance X88 X79, \n instance.private.declare-instance X79 X88 X87 X89 X90, \n if\n (arity (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) =\n arity _) true \n (if-verbose (header X91 , coq.say X91 closing instance section) ,\n log.coq.env.end-section-name X76), acc-clauses current X89]", "current_goal_predicate": "std.do!", "failed_attempts": [], "successful_attempts": [ @@ -29196,8 +27879,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", "rule_loc": [ "File", { @@ -29222,14 +27904,12 @@ }, "siblings": [ { - "goal_text": - "std.assert!\n (coq.safe-dest-app\n (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) \n (global X77) X78) The type of the instance is not a factory", + "goal_text": "std.assert!\n (coq.safe-dest-app\n (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) \n (global X77) X78) The type of the instance is not a factory", "goal_id": 1301 }, { "goal_text": "!", "goal_id": 1302 }, { - "goal_text": - "std.do!\n [factory-alias->gref X77 X79, \n std.assert! (factory-nparams X79 X80) Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n (app\n [global (const «IsSelfA'.phant_Build»), global (indt «nat»), \n global (indc «O»), fun `x` (global (indt «nat»)) c0 \\ c0]) X81, \n instance.private.optimize-body X81 X82, \n if (_ = _) \n (, (new_int X83) (std.any->string X83 X84) \n (X85 is HB_unnamed_factory_ ^ X84)) (X85 = _), \n log.coq.env.add-const-noimplicits-failondup X85 X82 \n (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) ff X86, \n X87 = global (const X86), std.drop X80 X78 [X88 | _], \n instance.private.check-non-forgetful-inheritance X88 X79, \n instance.private.declare-instance X79 X88 X87 X89 X90, \n if\n (arity (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) =\n arity _) true \n (if-verbose (header X91 , coq.say X91 closing instance section) ,\n log.coq.env.end-section-name X76), acc-clauses current X89]", + "goal_text": "std.do!\n [factory-alias->gref X77 X79, \n std.assert! (factory-nparams X79 X80) Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n (app\n [global (const «IsSelfA'.phant_Build»), global (indt «nat»), \n global (indc «O»), fun `x` (global (indt «nat»)) c0 \\ c0]) X81, \n instance.private.optimize-body X81 X82, \n if (_ = _) \n (, (new_int X83) (std.any->string X83 X84) \n (X85 is HB_unnamed_factory_ ^ X84)) (X85 = _), \n log.coq.env.add-const-noimplicits-failondup X85 X82 \n (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) ff X86, \n X87 = global (const X86), std.drop X80 X78 [X88 | _], \n instance.private.check-non-forgetful-inheritance X88 X79, \n instance.private.declare-instance X79 X88 X87 X89 X90, \n if\n (arity (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) =\n arity _) true \n (if-verbose (header X91 , coq.say X91 closing instance section) ,\n log.coq.env.end-section-name X76), acc-clauses current X89]", "goal_id": 1303 } ], @@ -29337,13 +28017,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -29362,8 +28040,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -29388,13 +28065,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -29409,8 +28084,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -29442,8 +28116,7 @@ "Inference", { "current_goal_id": 1301, - "current_goal_text": - "std.assert!\n (coq.safe-dest-app\n (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) \n (global X77) X78) The type of the instance is not a factory", + "current_goal_text": "std.assert!\n (coq.safe-dest-app\n (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) \n (global X77) X78) The type of the instance is not a factory", "current_goal_predicate": "std.assert!", "failed_attempts": [], "successful_attempts": [ @@ -29452,8 +28125,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", + "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", "rule_loc": [ "File", { @@ -29477,8 +28149,7 @@ }, "siblings": [ { - "goal_text": - "coq.safe-dest-app\n (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) \n (global X77) X78 ;\n std.fatal-error-w-data The type of the instance is not a factory \n (coq.safe-dest-app\n (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) \n (global X77) X78)", + "goal_text": "coq.safe-dest-app\n (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) \n (global X77) X78 ;\n std.fatal-error-w-data The type of the instance is not a factory \n (coq.safe-dest-app\n (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) \n (global X77) X78)", "goal_id": 1304 }, { "goal_text": "!", "goal_id": 1305 } @@ -29492,8 +28163,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", + "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", "rule_loc": [ "File", { @@ -29607,13 +28277,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -29632,8 +28300,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -29658,13 +28325,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -29679,8 +28344,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -29712,8 +28376,7 @@ "Inference", { "current_goal_id": 1304, - "current_goal_text": - "coq.safe-dest-app\n (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) \n (global X77) X78 ;\n std.fatal-error-w-data The type of the instance is not a factory \n (coq.safe-dest-app\n (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) \n (global X77) X78)", + "current_goal_text": "coq.safe-dest-app\n (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) \n (global X77) X78 ;\n std.fatal-error-w-data The type of the instance is not a factory \n (coq.safe-dest-app\n (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) \n (global X77) X78)", "current_goal_predicate": ";", "failed_attempts": [], "successful_attempts": [ @@ -29743,8 +28406,7 @@ }, "siblings": [ { - "goal_text": - "coq.safe-dest-app\n (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) \n (global X77) X78", + "goal_text": "coq.safe-dest-app\n (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) \n (global X77) X78", "goal_id": 1306 } ], @@ -29776,8 +28438,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", + "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", "rule_loc": [ "File", { @@ -29891,13 +28552,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -29916,8 +28575,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -29942,13 +28600,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -29963,8 +28619,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -29996,8 +28651,7 @@ "Inference", { "current_goal_id": 1306, - "current_goal_text": - "coq.safe-dest-app\n (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) \n (global X77) X78", + "current_goal_text": "coq.safe-dest-app\n (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) \n (global X77) X78", "current_goal_predicate": "coq.safe-dest-app", "failed_attempts": [], "successful_attempts": [ @@ -30006,8 +28660,7 @@ "rule": [ "UserRule", { - "rule_text": - "(coq.safe-dest-app (app [A0 | A1]) A2 A3) :- (!), \n (coq.safe-dest-app A0 A2 A4), (std.append A4 A1 A3).", + "rule_text": "(coq.safe-dest-app (app [A0 | A1]) A2 A3) :- (!), \n (coq.safe-dest-app A0 A2 A4), (std.append A4 A1 A3).", "rule_loc": [ "File", { @@ -30029,8 +28682,7 @@ "siblings": [ { "goal_text": "!", "goal_id": 1307 }, { - "goal_text": - "coq.safe-dest-app (global (indt «IsSelfA'.axioms_»)) (global X77) X100", + "goal_text": "coq.safe-dest-app (global (indt «IsSelfA'.axioms_»)) (global X77) X100", "goal_id": 1308 }, { @@ -30047,8 +28699,7 @@ "rule": [ "UserRule", { - "rule_text": - "(coq.safe-dest-app (app [A0 | A1]) A2 A3) :- (!), \n (coq.safe-dest-app A0 A2 A4), (std.append A4 A1 A3).", + "rule_text": "(coq.safe-dest-app (app [A0 | A1]) A2 A3) :- (!), \n (coq.safe-dest-app A0 A2 A4), (std.append A4 A1 A3).", "rule_loc": [ "File", { @@ -30086,8 +28737,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", + "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", "rule_loc": [ "File", { @@ -30201,13 +28851,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -30226,8 +28874,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -30252,13 +28899,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -30273,8 +28918,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -30309,8 +28953,7 @@ "cut_victims": [ { "cut_branch_for_goal": { - "goal_text": - "coq.safe-dest-app\n (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) \n (global X77) X78", + "goal_text": "coq.safe-dest-app\n (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) \n (global X77) X78", "goal_id": 1306 }, "cut_branch": { @@ -30338,8 +28981,7 @@ "Inference", { "current_goal_id": 1308, - "current_goal_text": - "coq.safe-dest-app (global (indt «IsSelfA'.axioms_»)) (global X77) X100", + "current_goal_text": "coq.safe-dest-app (global (indt «IsSelfA'.axioms_»)) (global X77) X100", "current_goal_predicate": "coq.safe-dest-app", "failed_attempts": [], "successful_attempts": [ @@ -30395,8 +29037,7 @@ "rule": [ "UserRule", { - "rule_text": - "(coq.safe-dest-app (app [A0 | A1]) A2 A3) :- (!), \n (coq.safe-dest-app A0 A2 A4), (std.append A4 A1 A3).", + "rule_text": "(coq.safe-dest-app (app [A0 | A1]) A2 A3) :- (!), \n (coq.safe-dest-app A0 A2 A4), (std.append A4 A1 A3).", "rule_loc": [ "File", { @@ -30434,8 +29075,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", + "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", "rule_loc": [ "File", { @@ -30549,13 +29189,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -30574,8 +29212,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -30600,13 +29237,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -30621,8 +29256,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -30709,8 +29343,7 @@ "rule": [ "UserRule", { - "rule_text": - "(coq.safe-dest-app (app [A0 | A1]) A2 A3) :- (!), \n (coq.safe-dest-app A0 A2 A4), (std.append A4 A1 A3).", + "rule_text": "(coq.safe-dest-app (app [A0 | A1]) A2 A3) :- (!), \n (coq.safe-dest-app A0 A2 A4), (std.append A4 A1 A3).", "rule_loc": [ "File", { @@ -30748,8 +29381,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", + "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", "rule_loc": [ "File", { @@ -30863,13 +29495,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -30888,8 +29518,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -30914,13 +29543,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -30935,8 +29562,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -30971,8 +29597,7 @@ "cut_victims": [ { "cut_branch_for_goal": { - "goal_text": - "coq.safe-dest-app\n (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) \n (global X77) X78 ;\n std.fatal-error-w-data The type of the instance is not a factory \n (coq.safe-dest-app\n (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) \n (global X77) X78)", + "goal_text": "coq.safe-dest-app\n (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) \n (global X77) X78 ;\n std.fatal-error-w-data The type of the instance is not a factory \n (coq.safe-dest-app\n (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) \n (global X77) X78)", "goal_id": 1304 }, "cut_branch": { @@ -31006,8 +29631,7 @@ "Inference", { "current_goal_id": 1303, - "current_goal_text": - "std.do!\n [factory-alias->gref (indt «IsSelfA'.axioms_») X79, \n std.assert! (factory-nparams X79 X80) Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n (app\n [global (const «IsSelfA'.phant_Build»), global (indt «nat»), \n global (indc «O»), fun `x` (global (indt «nat»)) c0 \\ c0]) X81, \n instance.private.optimize-body X81 X82, \n if (_ = _) \n (, (new_int X83) (std.any->string X83 X84) \n (X85 is HB_unnamed_factory_ ^ X84)) (X85 = _), \n log.coq.env.add-const-noimplicits-failondup X85 X82 \n (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) ff X86, \n X87 = global (const X86), std.drop X80 [global (indt «nat»)] [X88 | _], \n instance.private.check-non-forgetful-inheritance X88 X79, \n instance.private.declare-instance X79 X88 X87 X89 X90, \n if\n (arity (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) =\n arity _) true \n (if-verbose (header X91 , coq.say X91 closing instance section) ,\n log.coq.env.end-section-name X76), acc-clauses current X89]", + "current_goal_text": "std.do!\n [factory-alias->gref (indt «IsSelfA'.axioms_») X79, \n std.assert! (factory-nparams X79 X80) Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n (app\n [global (const «IsSelfA'.phant_Build»), global (indt «nat»), \n global (indc «O»), fun `x` (global (indt «nat»)) c0 \\ c0]) X81, \n instance.private.optimize-body X81 X82, \n if (_ = _) \n (, (new_int X83) (std.any->string X83 X84) \n (X85 is HB_unnamed_factory_ ^ X84)) (X85 = _), \n log.coq.env.add-const-noimplicits-failondup X85 X82 \n (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) ff X86, \n X87 = global (const X86), std.drop X80 [global (indt «nat»)] [X88 | _], \n instance.private.check-non-forgetful-inheritance X88 X79, \n instance.private.declare-instance X79 X88 X87 X89 X90, \n if\n (arity (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) =\n arity _) true \n (if-verbose (header X91 , coq.say X91 closing instance section) ,\n log.coq.env.end-section-name X76), acc-clauses current X89]", "current_goal_predicate": "std.do!", "failed_attempts": [], "successful_attempts": [ @@ -31016,8 +29640,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", "rule_loc": [ "File", { @@ -31042,14 +29665,12 @@ }, "siblings": [ { - "goal_text": - "factory-alias->gref (indt «IsSelfA'.axioms_») X79", + "goal_text": "factory-alias->gref (indt «IsSelfA'.axioms_») X79", "goal_id": 1310 }, { "goal_text": "!", "goal_id": 1311 }, { - "goal_text": - "std.do!\n [std.assert! (factory-nparams X79 X80) Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n (app\n [global (const «IsSelfA'.phant_Build»), global (indt «nat»), \n global (indc «O»), fun `x` (global (indt «nat»)) c0 \\ c0]) X81, \n instance.private.optimize-body X81 X82, \n if (_ = _) \n (, (new_int X83) (std.any->string X83 X84) \n (X85 is HB_unnamed_factory_ ^ X84)) (X85 = _), \n log.coq.env.add-const-noimplicits-failondup X85 X82 \n (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) ff X86, \n X87 = global (const X86), std.drop X80 [global (indt «nat»)] [X88 | _], \n instance.private.check-non-forgetful-inheritance X88 X79, \n instance.private.declare-instance X79 X88 X87 X89 X90, \n if\n (arity (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) =\n arity _) true \n (if-verbose (header X91 , coq.say X91 closing instance section) ,\n log.coq.env.end-section-name X76), acc-clauses current X89]", + "goal_text": "std.do!\n [std.assert! (factory-nparams X79 X80) Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n (app\n [global (const «IsSelfA'.phant_Build»), global (indt «nat»), \n global (indc «O»), fun `x` (global (indt «nat»)) c0 \\ c0]) X81, \n instance.private.optimize-body X81 X82, \n if (_ = _) \n (, (new_int X83) (std.any->string X83 X84) \n (X85 is HB_unnamed_factory_ ^ X84)) (X85 = _), \n log.coq.env.add-const-noimplicits-failondup X85 X82 \n (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) ff X86, \n X87 = global (const X86), std.drop X80 [global (indt «nat»)] [X88 | _], \n instance.private.check-non-forgetful-inheritance X88 X79, \n instance.private.declare-instance X79 X88 X87 X89 X90, \n if\n (arity (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) =\n arity _) true \n (if-verbose (header X91 , coq.say X91 closing instance section) ,\n log.coq.env.end-section-name X76), acc-clauses current X89]", "goal_id": 1312 } ], @@ -31176,13 +29797,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -31201,8 +29820,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -31227,13 +29845,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -31248,8 +29864,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -31281,8 +29896,7 @@ "Inference", { "current_goal_id": 1310, - "current_goal_text": - "factory-alias->gref (indt «IsSelfA'.axioms_») X79", + "current_goal_text": "factory-alias->gref (indt «IsSelfA'.axioms_») X79", "current_goal_predicate": "factory-alias->gref", "failed_attempts": [], "successful_attempts": [ @@ -31291,13 +29905,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-alias->gref A0 A1) :- (phant-abbrev A1 A0 _), (!).", + "rule_text": "(factory-alias->gref A0 A1) :- (phant-abbrev A1 A0 _), (!).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 74, "column": 0, "character": 2385 @@ -31326,13 +29938,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-alias->gref A0 A1) :- (phant-abbrev A1 A0 _), (!).", + "rule_text": "(factory-alias->gref A0 A1) :- (phant-abbrev A1 A0 _), (!).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 74, "column": 0, "character": 2385 @@ -31461,13 +30071,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -31486,8 +30094,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -31512,13 +30119,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -31533,8 +30138,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -31573,8 +30177,7 @@ "rule": [ "UserRule", { - "rule_text": - "(phant-abbrev (indt «HasA.axioms_») (const «HasA.phant_axioms») \n «interleave_context.HasA.axioms») :- .", + "rule_text": "(phant-abbrev (indt «HasA.axioms_») (const «HasA.phant_axioms») \n «interleave_context.HasA.axioms») :- .", "rule_loc": [ "File", { @@ -31598,8 +30201,7 @@ "rule": [ "UserRule", { - "rule_text": - "(phant-abbrev (indc «HasA.Axioms_») (const «HasA.phant_Build») \n «interleave_context.HasA.Build») :- .", + "rule_text": "(phant-abbrev (indc «HasA.Axioms_») (const «HasA.phant_Build») \n «interleave_context.HasA.Build») :- .", "rule_loc": [ "File", { @@ -31623,8 +30225,7 @@ "rule": [ "UserRule", { - "rule_text": - "(phant-abbrev (indt «HasB.axioms_») (const «HasB.phant_axioms») \n «interleave_context.HasB.axioms») :- .", + "rule_text": "(phant-abbrev (indt «HasB.axioms_») (const «HasB.phant_axioms») \n «interleave_context.HasB.axioms») :- .", "rule_loc": [ "File", { @@ -31648,8 +30249,7 @@ "rule": [ "UserRule", { - "rule_text": - "(phant-abbrev (indc «HasB.Axioms_») (const «HasB.phant_Build») \n «interleave_context.HasB.Build») :- .", + "rule_text": "(phant-abbrev (indc «HasB.Axioms_») (const «HasB.phant_Build») \n «interleave_context.HasB.Build») :- .", "rule_loc": [ "File", { @@ -31673,8 +30273,7 @@ "rule": [ "UserRule", { - "rule_text": - "(phant-abbrev (indt «IsSelfA.axioms_») (const «IsSelfA.phant_axioms») \n «interleave_context.IsSelfA.axioms») :- .", + "rule_text": "(phant-abbrev (indt «IsSelfA.axioms_») (const «IsSelfA.phant_axioms») \n «interleave_context.IsSelfA.axioms») :- .", "rule_loc": [ "File", { @@ -31698,8 +30297,7 @@ "rule": [ "UserRule", { - "rule_text": - "(phant-abbrev (indc «IsSelfA.Axioms_») (const «IsSelfA.phant_Build») \n «interleave_context.IsSelfA.Build») :- .", + "rule_text": "(phant-abbrev (indc «IsSelfA.Axioms_») (const «IsSelfA.phant_Build») \n «interleave_context.IsSelfA.Build») :- .", "rule_loc": [ "File", { @@ -31723,8 +30321,7 @@ "rule": [ "UserRule", { - "rule_text": - "(phant-abbrev (indt «IsSelfA'.axioms_») (const «IsSelfA'.phant_axioms») \n «interleave_context.IsSelfA'.axioms») :- .", + "rule_text": "(phant-abbrev (indt «IsSelfA'.axioms_») (const «IsSelfA'.phant_axioms») \n «interleave_context.IsSelfA'.axioms») :- .", "rule_loc": [ "File", { @@ -31748,8 +30345,7 @@ "rule": [ "UserRule", { - "rule_text": - "(phant-abbrev (indc «IsSelfA'.Axioms_») (const «IsSelfA'.phant_Build») \n «interleave_context.IsSelfA'.Build») :- .", + "rule_text": "(phant-abbrev (indc «IsSelfA'.Axioms_») (const «IsSelfA'.phant_Build») \n «interleave_context.IsSelfA'.Build») :- .", "rule_loc": [ "File", { @@ -31777,8 +30373,7 @@ "rule": [ "UserRule", { - "rule_text": - "(phant-abbrev (indt «HasA.axioms_») (const «HasA.phant_axioms») \n «interleave_context.HasA.axioms») :- .", + "rule_text": "(phant-abbrev (indt «HasA.axioms_») (const «HasA.phant_axioms») \n «interleave_context.HasA.axioms») :- .", "rule_loc": [ "File", { @@ -31797,13 +30392,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-alias->gref A0 A1) :- (phant-abbrev A1 A0 _), (!).", + "rule_text": "(factory-alias->gref A0 A1) :- (phant-abbrev A1 A0 _), (!).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 74, "column": 0, "character": 2385 @@ -31932,13 +30525,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -31957,8 +30548,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -31983,13 +30573,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -32004,8 +30592,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -32037,8 +30624,7 @@ "Inference", { "current_goal_id": 1310, - "current_goal_text": - "factory-alias->gref (indt «IsSelfA'.axioms_») X79", + "current_goal_text": "factory-alias->gref (indt «IsSelfA'.axioms_») X79", "current_goal_predicate": "factory-alias->gref", "failed_attempts": [], "successful_attempts": [ @@ -32047,13 +30633,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-alias->gref A0 A0) :- (phant-abbrev A0 _ _), (!).", + "rule_text": "(factory-alias->gref A0 A0) :- (phant-abbrev A0 _ _), (!).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 75, "column": 0, "character": 2443 @@ -32082,13 +30666,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-alias->gref A0 A0) :- (phant-abbrev A0 _ _), (!).", + "rule_text": "(factory-alias->gref A0 A0) :- (phant-abbrev A0 _ _), (!).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 75, "column": 0, "character": 2443 @@ -32217,13 +30799,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -32242,8 +30822,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -32268,13 +30847,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -32289,8 +30866,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -32329,8 +30905,7 @@ "rule": [ "UserRule", { - "rule_text": - "(phant-abbrev (indt «HasB.axioms_») (const «HasB.phant_axioms») \n «interleave_context.HasB.axioms») :- .", + "rule_text": "(phant-abbrev (indt «HasB.axioms_») (const «HasB.phant_axioms») \n «interleave_context.HasB.axioms») :- .", "rule_loc": [ "File", { @@ -32353,8 +30928,7 @@ "rule": [ "UserRule", { - "rule_text": - "(phant-abbrev (indt «IsSelfA.axioms_») (const «IsSelfA.phant_axioms») \n «interleave_context.IsSelfA.axioms») :- .", + "rule_text": "(phant-abbrev (indt «IsSelfA.axioms_») (const «IsSelfA.phant_axioms») \n «interleave_context.IsSelfA.axioms») :- .", "rule_loc": [ "File", { @@ -32377,8 +30951,7 @@ "rule": [ "UserRule", { - "rule_text": - "(phant-abbrev (indt «IsSelfA'.axioms_») (const «IsSelfA'.phant_axioms») \n «interleave_context.IsSelfA'.axioms») :- .", + "rule_text": "(phant-abbrev (indt «IsSelfA'.axioms_») (const «IsSelfA'.phant_axioms») \n «interleave_context.IsSelfA'.axioms») :- .", "rule_loc": [ "File", { @@ -32399,8 +30972,7 @@ "rule": [ "UserRule", { - "rule_text": - "(phant-abbrev (indt «HasA.axioms_») (const «HasA.phant_axioms») \n «interleave_context.HasA.axioms») :- .", + "rule_text": "(phant-abbrev (indt «HasA.axioms_») (const «HasA.phant_axioms») \n «interleave_context.HasA.axioms») :- .", "rule_loc": [ "File", { @@ -32429,8 +31001,7 @@ "rule": [ "UserRule", { - "rule_text": - "(phant-abbrev (indt «HasA.axioms_») (const «HasA.phant_axioms») \n «interleave_context.HasA.axioms») :- .", + "rule_text": "(phant-abbrev (indt «HasA.axioms_») (const «HasA.phant_axioms») \n «interleave_context.HasA.axioms») :- .", "rule_loc": [ "File", { @@ -32449,13 +31020,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-alias->gref A0 A0) :- (phant-abbrev A0 _ _), (!).", + "rule_text": "(factory-alias->gref A0 A0) :- (phant-abbrev A0 _ _), (!).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 75, "column": 0, "character": 2443 @@ -32584,13 +31153,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -32609,8 +31176,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -32635,13 +31201,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -32656,8 +31220,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -32692,13 +31255,11 @@ "cut_victims": [ { "cut_branch_for_goal": { - "goal_text": - "factory-alias->gref (indt «IsSelfA'.axioms_») X79", + "goal_text": "factory-alias->gref (indt «IsSelfA'.axioms_») X79", "goal_id": 1310 }, "cut_branch": { - "rule_text": - "(factory-alias->gref (indt «A.axioms_») (indt «A.axioms_»)) :- .", + "rule_text": "(factory-alias->gref (indt «A.axioms_») (indt «A.axioms_»)) :- .", "rule_loc": [ "File", { @@ -32712,13 +31273,11 @@ }, { "cut_branch_for_goal": { - "goal_text": - "factory-alias->gref (indt «IsSelfA'.axioms_») X79", + "goal_text": "factory-alias->gref (indt «IsSelfA'.axioms_») X79", "goal_id": 1310 }, "cut_branch": { - "rule_text": - "(factory-alias->gref (indt «B.axioms_») (indt «B.axioms_»)) :- .", + "rule_text": "(factory-alias->gref (indt «B.axioms_») (indt «B.axioms_»)) :- .", "rule_loc": [ "File", { @@ -32732,13 +31291,11 @@ }, { "cut_branch_for_goal": { - "goal_text": - "factory-alias->gref (indt «IsSelfA'.axioms_») X79", + "goal_text": "factory-alias->gref (indt «IsSelfA'.axioms_») X79", "goal_id": 1310 }, "cut_branch": { - "rule_text": - "(factory-alias->gref (indt «SelfA.axioms_») (indt «SelfA.axioms_»)) :- .", + "rule_text": "(factory-alias->gref (indt «SelfA.axioms_») (indt «SelfA.axioms_»)) :- .", "rule_loc": [ "File", { @@ -32768,8 +31325,7 @@ "Inference", { "current_goal_id": 1312, - "current_goal_text": - "std.do!\n [std.assert! (factory-nparams (indt «IsSelfA'.axioms_») X80) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n (app\n [global (const «IsSelfA'.phant_Build»), global (indt «nat»), \n global (indc «O»), fun `x` (global (indt «nat»)) c0 \\ c0]) X81, \n instance.private.optimize-body X81 X82, \n if (_ = _) \n (, (new_int X83) (std.any->string X83 X84) \n (X85 is HB_unnamed_factory_ ^ X84)) (X85 = _), \n log.coq.env.add-const-noimplicits-failondup X85 X82 \n (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) ff X86, \n X87 = global (const X86), std.drop X80 [global (indt «nat»)] [X88 | _], \n instance.private.check-non-forgetful-inheritance X88 \n (indt «IsSelfA'.axioms_»), \n instance.private.declare-instance (indt «IsSelfA'.axioms_») X88 X87 X89 \n X90, \n if\n (arity (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) =\n arity _) true \n (if-verbose (header X91 , coq.say X91 closing instance section) ,\n log.coq.env.end-section-name X76), acc-clauses current X89]", + "current_goal_text": "std.do!\n [std.assert! (factory-nparams (indt «IsSelfA'.axioms_») X80) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n (app\n [global (const «IsSelfA'.phant_Build»), global (indt «nat»), \n global (indc «O»), fun `x` (global (indt «nat»)) c0 \\ c0]) X81, \n instance.private.optimize-body X81 X82, \n if (_ = _) \n (, (new_int X83) (std.any->string X83 X84) \n (X85 is HB_unnamed_factory_ ^ X84)) (X85 = _), \n log.coq.env.add-const-noimplicits-failondup X85 X82 \n (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) ff X86, \n X87 = global (const X86), std.drop X80 [global (indt «nat»)] [X88 | _], \n instance.private.check-non-forgetful-inheritance X88 \n (indt «IsSelfA'.axioms_»), \n instance.private.declare-instance (indt «IsSelfA'.axioms_») X88 X87 X89 \n X90, \n if\n (arity (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) =\n arity _) true \n (if-verbose (header X91 , coq.say X91 closing instance section) ,\n log.coq.env.end-section-name X76), acc-clauses current X89]", "current_goal_predicate": "std.do!", "failed_attempts": [], "successful_attempts": [ @@ -32778,8 +31334,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", "rule_loc": [ "File", { @@ -32804,14 +31359,12 @@ }, "siblings": [ { - "goal_text": - "std.assert! (factory-nparams (indt «IsSelfA'.axioms_») X80) \n Not a factory synthesized by HB", + "goal_text": "std.assert! (factory-nparams (indt «IsSelfA'.axioms_») X80) \n Not a factory synthesized by HB", "goal_id": 1317 }, { "goal_text": "!", "goal_id": 1318 }, { - "goal_text": - "std.do!\n [instance.private.hack-section-discharging\n (app\n [global (const «IsSelfA'.phant_Build»), global (indt «nat»), \n global (indc «O»), fun `x` (global (indt «nat»)) c0 \\ c0]) X81, \n instance.private.optimize-body X81 X82, \n if (_ = _) \n (, (new_int X83) (std.any->string X83 X84) \n (X85 is HB_unnamed_factory_ ^ X84)) (X85 = _), \n log.coq.env.add-const-noimplicits-failondup X85 X82 \n (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) ff X86, \n X87 = global (const X86), std.drop X80 [global (indt «nat»)] [X88 | _], \n instance.private.check-non-forgetful-inheritance X88 \n (indt «IsSelfA'.axioms_»), \n instance.private.declare-instance (indt «IsSelfA'.axioms_») X88 X87 X89 \n X90, \n if\n (arity (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) =\n arity _) true \n (if-verbose (header X91 , coq.say X91 closing instance section) ,\n log.coq.env.end-section-name X76), acc-clauses current X89]", + "goal_text": "std.do!\n [instance.private.hack-section-discharging\n (app\n [global (const «IsSelfA'.phant_Build»), global (indt «nat»), \n global (indc «O»), fun `x` (global (indt «nat»)) c0 \\ c0]) X81, \n instance.private.optimize-body X81 X82, \n if (_ = _) \n (, (new_int X83) (std.any->string X83 X84) \n (X85 is HB_unnamed_factory_ ^ X84)) (X85 = _), \n log.coq.env.add-const-noimplicits-failondup X85 X82 \n (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) ff X86, \n X87 = global (const X86), std.drop X80 [global (indt «nat»)] [X88 | _], \n instance.private.check-non-forgetful-inheritance X88 \n (indt «IsSelfA'.axioms_»), \n instance.private.declare-instance (indt «IsSelfA'.axioms_») X88 X87 X89 \n X90, \n if\n (arity (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) =\n arity _) true \n (if-verbose (header X91 , coq.say X91 closing instance section) ,\n log.coq.env.end-section-name X76), acc-clauses current X89]", "goal_id": 1319 } ], @@ -32957,13 +31510,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -32982,8 +31533,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -33008,13 +31558,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -33029,8 +31577,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -33062,8 +31609,7 @@ "Inference", { "current_goal_id": 1317, - "current_goal_text": - "std.assert! (factory-nparams (indt «IsSelfA'.axioms_») X80) \n Not a factory synthesized by HB", + "current_goal_text": "std.assert! (factory-nparams (indt «IsSelfA'.axioms_») X80) \n Not a factory synthesized by HB", "current_goal_predicate": "std.assert!", "failed_attempts": [], "successful_attempts": [ @@ -33072,8 +31618,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", + "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", "rule_loc": [ "File", { @@ -33095,8 +31640,7 @@ }, "siblings": [ { - "goal_text": - "factory-nparams (indt «IsSelfA'.axioms_») X80 ;\n std.fatal-error-w-data Not a factory synthesized by HB \n (factory-nparams (indt «IsSelfA'.axioms_») X80)", + "goal_text": "factory-nparams (indt «IsSelfA'.axioms_») X80 ;\n std.fatal-error-w-data Not a factory synthesized by HB \n (factory-nparams (indt «IsSelfA'.axioms_») X80)", "goal_id": 1320 }, { "goal_text": "!", "goal_id": 1321 } @@ -33110,8 +31654,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", + "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", "rule_loc": [ "File", { @@ -33263,13 +31806,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -33288,8 +31829,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -33314,13 +31854,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -33335,8 +31873,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -33368,8 +31905,7 @@ "Inference", { "current_goal_id": 1320, - "current_goal_text": - "factory-nparams (indt «IsSelfA'.axioms_») X80 ;\n std.fatal-error-w-data Not a factory synthesized by HB \n (factory-nparams (indt «IsSelfA'.axioms_») X80)", + "current_goal_text": "factory-nparams (indt «IsSelfA'.axioms_») X80 ;\n std.fatal-error-w-data Not a factory synthesized by HB \n (factory-nparams (indt «IsSelfA'.axioms_») X80)", "current_goal_predicate": ";", "failed_attempts": [], "successful_attempts": [ @@ -33399,8 +31935,7 @@ }, "siblings": [ { - "goal_text": - "factory-nparams (indt «IsSelfA'.axioms_») X80", + "goal_text": "factory-nparams (indt «IsSelfA'.axioms_») X80", "goal_id": 1322 } ], @@ -33432,8 +31967,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", + "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", "rule_loc": [ "File", { @@ -33585,13 +32119,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -33610,8 +32142,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -33636,13 +32167,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -33657,8 +32186,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -33690,8 +32218,7 @@ "Inference", { "current_goal_id": 1322, - "current_goal_text": - "factory-nparams (indt «IsSelfA'.axioms_») X80", + "current_goal_text": "factory-nparams (indt «IsSelfA'.axioms_») X80", "current_goal_predicate": "factory-nparams", "failed_attempts": [ { @@ -33721,8 +32248,7 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-nparams (indt «HasB.axioms_») 1) :- .", + "rule_text": "(factory-nparams (indt «HasB.axioms_») 1) :- .", "rule_loc": [ "File", { @@ -33768,8 +32294,7 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-nparams (indt «IsSelfA.axioms_») 0) :- .", + "rule_text": "(factory-nparams (indt «IsSelfA.axioms_») 0) :- .", "rule_loc": [ "File", { @@ -33792,8 +32317,7 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-nparams (indt «SelfA.axioms_») 0) :- .", + "rule_text": "(factory-nparams (indt «SelfA.axioms_») 0) :- .", "rule_loc": [ "File", { @@ -33816,8 +32340,7 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-nparams (indt «IsSelfA'.axioms_») 0) :- .", + "rule_text": "(factory-nparams (indt «IsSelfA'.axioms_») 0) :- .", "rule_loc": [ "File", { @@ -33838,8 +32361,7 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-nparams (indt «HasA.axioms_») 1) :- .", + "rule_text": "(factory-nparams (indt «HasA.axioms_») 1) :- .", "rule_loc": [ "File", { @@ -33868,8 +32390,7 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-nparams (indt «HasA.axioms_») 1) :- .", + "rule_text": "(factory-nparams (indt «HasA.axioms_») 1) :- .", "rule_loc": [ "File", { @@ -33907,8 +32428,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", + "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", "rule_loc": [ "File", { @@ -34060,13 +32580,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -34085,8 +32603,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -34111,13 +32628,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -34132,8 +32647,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -34168,8 +32682,7 @@ "cut_victims": [ { "cut_branch_for_goal": { - "goal_text": - "factory-nparams (indt «IsSelfA'.axioms_») X80 ;\n std.fatal-error-w-data Not a factory synthesized by HB \n (factory-nparams (indt «IsSelfA'.axioms_») X80)", + "goal_text": "factory-nparams (indt «IsSelfA'.axioms_») X80 ;\n std.fatal-error-w-data Not a factory synthesized by HB \n (factory-nparams (indt «IsSelfA'.axioms_») X80)", "goal_id": 1320 }, "cut_branch": { @@ -34203,8 +32716,7 @@ "Inference", { "current_goal_id": 1319, - "current_goal_text": - "std.do!\n [instance.private.hack-section-discharging\n (app\n [global (const «IsSelfA'.phant_Build»), global (indt «nat»), \n global (indc «O»), fun `x` (global (indt «nat»)) c0 \\ c0]) X81, \n instance.private.optimize-body X81 X82, \n if (_ = _) \n (, (new_int X83) (std.any->string X83 X84) \n (X85 is HB_unnamed_factory_ ^ X84)) (X85 = _), \n log.coq.env.add-const-noimplicits-failondup X85 X82 \n (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) ff X86, \n X87 = global (const X86), std.drop 0 [global (indt «nat»)] [X88 | _], \n instance.private.check-non-forgetful-inheritance X88 \n (indt «IsSelfA'.axioms_»), \n instance.private.declare-instance (indt «IsSelfA'.axioms_») X88 X87 X89 \n X90, \n if\n (arity (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) =\n arity _) true \n (if-verbose (header X91 , coq.say X91 closing instance section) ,\n log.coq.env.end-section-name X76), acc-clauses current X89]", + "current_goal_text": "std.do!\n [instance.private.hack-section-discharging\n (app\n [global (const «IsSelfA'.phant_Build»), global (indt «nat»), \n global (indc «O»), fun `x` (global (indt «nat»)) c0 \\ c0]) X81, \n instance.private.optimize-body X81 X82, \n if (_ = _) \n (, (new_int X83) (std.any->string X83 X84) \n (X85 is HB_unnamed_factory_ ^ X84)) (X85 = _), \n log.coq.env.add-const-noimplicits-failondup X85 X82 \n (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) ff X86, \n X87 = global (const X86), std.drop 0 [global (indt «nat»)] [X88 | _], \n instance.private.check-non-forgetful-inheritance X88 \n (indt «IsSelfA'.axioms_»), \n instance.private.declare-instance (indt «IsSelfA'.axioms_») X88 X87 X89 \n X90, \n if\n (arity (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) =\n arity _) true \n (if-verbose (header X91 , coq.say X91 closing instance section) ,\n log.coq.env.end-section-name X76), acc-clauses current X89]", "current_goal_predicate": "std.do!", "failed_attempts": [], "successful_attempts": [ @@ -34213,8 +32725,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", "rule_loc": [ "File", { @@ -34239,14 +32750,12 @@ }, "siblings": [ { - "goal_text": - "instance.private.hack-section-discharging\n (app\n [global (const «IsSelfA'.phant_Build»), global (indt «nat»), \n global (indc «O»), fun `x` (global (indt «nat»)) c0 \\ c0]) X81", + "goal_text": "instance.private.hack-section-discharging\n (app\n [global (const «IsSelfA'.phant_Build»), global (indt «nat»), \n global (indc «O»), fun `x` (global (indt «nat»)) c0 \\ c0]) X81", "goal_id": 1323 }, { "goal_text": "!", "goal_id": 1324 }, { - "goal_text": - "std.do!\n [instance.private.optimize-body X81 X82, \n if (_ = _) \n (, (new_int X83) (std.any->string X83 X84) \n (X85 is HB_unnamed_factory_ ^ X84)) (X85 = _), \n log.coq.env.add-const-noimplicits-failondup X85 X82 \n (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) ff X86, \n X87 = global (const X86), std.drop 0 [global (indt «nat»)] [X88 | _], \n instance.private.check-non-forgetful-inheritance X88 \n (indt «IsSelfA'.axioms_»), \n instance.private.declare-instance (indt «IsSelfA'.axioms_») X88 X87 X89 \n X90, \n if\n (arity (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) =\n arity _) true \n (if-verbose (header X91 , coq.say X91 closing instance section) ,\n log.coq.env.end-section-name X76), acc-clauses current X89]", + "goal_text": "std.do!\n [instance.private.optimize-body X81 X82, \n if (_ = _) \n (, (new_int X83) (std.any->string X83 X84) \n (X85 is HB_unnamed_factory_ ^ X84)) (X85 = _), \n log.coq.env.add-const-noimplicits-failondup X85 X82 \n (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) ff X86, \n X87 = global (const X86), std.drop 0 [global (indt «nat»)] [X88 | _], \n instance.private.check-non-forgetful-inheritance X88 \n (indt «IsSelfA'.axioms_»), \n instance.private.declare-instance (indt «IsSelfA'.axioms_») X88 X87 X89 \n X90, \n if\n (arity (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) =\n arity _) true \n (if-verbose (header X91 , coq.say X91 closing instance section) ,\n log.coq.env.end-section-name X76), acc-clauses current X89]", "goal_id": 1325 } ], @@ -34411,13 +32920,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -34436,8 +32943,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -34462,13 +32968,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -34483,8 +32987,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -34516,8 +33019,7 @@ "Inference", { "current_goal_id": 1323, - "current_goal_text": - "instance.private.hack-section-discharging\n (app\n [global (const «IsSelfA'.phant_Build»), global (indt «nat»), \n global (indc «O»), fun `x` (global (indt «nat»)) c0 \\ c0]) X81", + "current_goal_text": "instance.private.hack-section-discharging\n (app\n [global (const «IsSelfA'.phant_Build»), global (indt «nat»), \n global (indc «O»), fun `x` (global (indt «nat»)) c0 \\ c0]) X81", "current_goal_predicate": "instance.private.hack-section-discharging", "failed_attempts": [], "successful_attempts": [ @@ -34526,13 +33028,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.hack-section-discharging A0 A0) :- (current-mode no-builder), \n (!).", + "rule_text": "(instance.private.hack-section-discharging A0 A0) :- (current-mode no-builder), \n (!).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 300, "column": 0, "character": 12925 @@ -34564,13 +33064,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.hack-section-discharging A0 A0) :- (current-mode no-builder), \n (!).", + "rule_text": "(instance.private.hack-section-discharging A0 A0) :- (current-mode no-builder), \n (!).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 300, "column": 0, "character": 12925 @@ -34737,13 +33235,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -34762,8 +33258,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -34788,13 +33283,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -34809,8 +33302,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -34852,13 +33344,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.hack-section-discharging A0 A0) :- (current-mode no-builder), \n (!).", + "rule_text": "(instance.private.hack-section-discharging A0 A0) :- (current-mode no-builder), \n (!).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 300, "column": 0, "character": 12925 @@ -35025,13 +33515,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -35050,8 +33538,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -35076,13 +33563,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -35097,8 +33582,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -35130,8 +33614,7 @@ "Inference", { "current_goal_id": 1323, - "current_goal_text": - "instance.private.hack-section-discharging\n (app\n [global (const «IsSelfA'.phant_Build»), global (indt «nat»), \n global (indc «O»), fun `x` (global (indt «nat»)) c0 \\ c0]) X81", + "current_goal_text": "instance.private.hack-section-discharging\n (app\n [global (const «IsSelfA'.phant_Build»), global (indt «nat»), \n global (indc «O»), fun `x` (global (indt «nat»)) c0 \\ c0]) X81", "current_goal_predicate": "instance.private.hack-section-discharging", "failed_attempts": [], "successful_attempts": [ @@ -35140,13 +33623,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.hack-section-discharging A0 A1) :- (current-mode\n (builder-from _ A2 _ _)), \n (!), (std.assert-ok! (coq.typecheck A2 A3) TheFactory is illtyped (BUG)), \n (A1 = let `_` A3 A2 (c0 \\ A0)).", + "rule_text": "(instance.private.hack-section-discharging A0 A1) :- (current-mode\n (builder-from _ A2 _ _)), \n (!), (std.assert-ok! (coq.typecheck A2 A3) TheFactory is illtyped (BUG)), \n (A1 = let `_` A3 A2 (c0 \\ A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 301, "column": 0, "character": 12985 @@ -35169,13 +33650,11 @@ }, { "goal_text": "!", "goal_id": 1329 }, { - "goal_text": - "std.assert-ok! (coq.typecheck X101 X102) TheFactory is illtyped (BUG)", + "goal_text": "std.assert-ok! (coq.typecheck X101 X102) TheFactory is illtyped (BUG)", "goal_id": 1330 }, { - "goal_text": - "X81 =\n let `_` X102 X101 c0 \\\n app\n [global (const «IsSelfA'.phant_Build»), global (indt «nat»), \n global (indc «O»), fun `x` (global (indt «nat»)) c1 \\ c1]", + "goal_text": "X81 =\n let `_` X102 X101 c0 \\\n app\n [global (const «IsSelfA'.phant_Build»), global (indt «nat»), \n global (indc «O»), fun `x` (global (indt «nat»)) c1 \\ c1]", "goal_id": 1331 } ], @@ -35188,13 +33667,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.hack-section-discharging A0 A1) :- (current-mode\n (builder-from _ A2 _ _)), \n (!), (std.assert-ok! (coq.typecheck A2 A3) TheFactory is illtyped (BUG)), \n (A1 = let `_` A3 A2 (c0 \\ A0)).", + "rule_text": "(instance.private.hack-section-discharging A0 A1) :- (current-mode\n (builder-from _ A2 _ _)), \n (!), (std.assert-ok! (coq.typecheck A2 A3) TheFactory is illtyped (BUG)), \n (A1 = let `_` A3 A2 (c0 \\ A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 301, "column": 0, "character": 12985 @@ -35361,13 +33838,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -35386,8 +33861,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -35412,13 +33886,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -35433,8 +33905,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -35476,13 +33947,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.hack-section-discharging A0 A1) :- (current-mode\n (builder-from _ A2 _ _)), \n (!), (std.assert-ok! (coq.typecheck A2 A3) TheFactory is illtyped (BUG)), \n (A1 = let `_` A3 A2 (c0 \\ A0)).", + "rule_text": "(instance.private.hack-section-discharging A0 A1) :- (current-mode\n (builder-from _ A2 _ _)), \n (!), (std.assert-ok! (coq.typecheck A2 A3) TheFactory is illtyped (BUG)), \n (A1 = let `_` A3 A2 (c0 \\ A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 301, "column": 0, "character": 12985 @@ -35649,13 +34118,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -35674,8 +34141,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -35700,13 +34166,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -35721,8 +34185,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -35754,8 +34217,7 @@ "Inference", { "current_goal_id": 1323, - "current_goal_text": - "instance.private.hack-section-discharging\n (app\n [global (const «IsSelfA'.phant_Build»), global (indt «nat»), \n global (indc «O»), fun `x` (global (indt «nat»)) c0 \\ c0]) X81", + "current_goal_text": "instance.private.hack-section-discharging\n (app\n [global (const «IsSelfA'.phant_Build»), global (indt «nat»), \n global (indc «O»), fun `x` (global (indt «nat»)) c0 \\ c0]) X81", "current_goal_predicate": "instance.private.hack-section-discharging", "failed_attempts": [], "successful_attempts": [ @@ -35764,13 +34226,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.hack-section-discharging A0 A0) :- .", + "rule_text": "(instance.private.hack-section-discharging A0 A0) :- .", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 304, "column": 0, "character": 13219 @@ -35799,13 +34259,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.hack-section-discharging A0 A0) :- .", + "rule_text": "(instance.private.hack-section-discharging A0 A0) :- .", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 304, "column": 0, "character": 13219 @@ -35972,13 +34430,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -35997,8 +34453,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -36023,13 +34478,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -36044,8 +34497,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -36083,8 +34535,7 @@ "Inference", { "current_goal_id": 1325, - "current_goal_text": - "std.do!\n [instance.private.optimize-body\n (app\n [global (const «IsSelfA'.phant_Build»), global (indt «nat»), \n global (indc «O»), fun `x` (global (indt «nat»)) c0 \\ c0]) X82, \n if (_ = _) \n (, (new_int X83) (std.any->string X83 X84) \n (X85 is HB_unnamed_factory_ ^ X84)) (X85 = _), \n log.coq.env.add-const-noimplicits-failondup X85 X82 \n (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) ff X86, \n X87 = global (const X86), std.drop 0 [global (indt «nat»)] [X88 | _], \n instance.private.check-non-forgetful-inheritance X88 \n (indt «IsSelfA'.axioms_»), \n instance.private.declare-instance (indt «IsSelfA'.axioms_») X88 X87 X89 \n X90, \n if\n (arity (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) =\n arity _) true \n (if-verbose (header X91 , coq.say X91 closing instance section) ,\n log.coq.env.end-section-name X76), acc-clauses current X89]", + "current_goal_text": "std.do!\n [instance.private.optimize-body\n (app\n [global (const «IsSelfA'.phant_Build»), global (indt «nat»), \n global (indc «O»), fun `x` (global (indt «nat»)) c0 \\ c0]) X82, \n if (_ = _) \n (, (new_int X83) (std.any->string X83 X84) \n (X85 is HB_unnamed_factory_ ^ X84)) (X85 = _), \n log.coq.env.add-const-noimplicits-failondup X85 X82 \n (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) ff X86, \n X87 = global (const X86), std.drop 0 [global (indt «nat»)] [X88 | _], \n instance.private.check-non-forgetful-inheritance X88 \n (indt «IsSelfA'.axioms_»), \n instance.private.declare-instance (indt «IsSelfA'.axioms_») X88 X87 X89 \n X90, \n if\n (arity (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) =\n arity _) true \n (if-verbose (header X91 , coq.say X91 closing instance section) ,\n log.coq.env.end-section-name X76), acc-clauses current X89]", "current_goal_predicate": "std.do!", "failed_attempts": [], "successful_attempts": [ @@ -36093,8 +34544,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", "rule_loc": [ "File", { @@ -36119,14 +34569,12 @@ }, "siblings": [ { - "goal_text": - "instance.private.optimize-body\n (app\n [global (const «IsSelfA'.phant_Build»), global (indt «nat»), \n global (indc «O»), fun `x` (global (indt «nat»)) c0 \\ c0]) X82", + "goal_text": "instance.private.optimize-body\n (app\n [global (const «IsSelfA'.phant_Build»), global (indt «nat»), \n global (indc «O»), fun `x` (global (indt «nat»)) c0 \\ c0]) X82", "goal_id": 1332 }, { "goal_text": "!", "goal_id": 1333 }, { - "goal_text": - "std.do!\n [if (_ = _) \n (, (new_int X83) (std.any->string X83 X84) \n (X85 is HB_unnamed_factory_ ^ X84)) (X85 = _), \n log.coq.env.add-const-noimplicits-failondup X85 X82 \n (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) ff X86, \n X87 = global (const X86), std.drop 0 [global (indt «nat»)] [X88 | _], \n instance.private.check-non-forgetful-inheritance X88 \n (indt «IsSelfA'.axioms_»), \n instance.private.declare-instance (indt «IsSelfA'.axioms_») X88 X87 X89 \n X90, \n if\n (arity (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) =\n arity _) true \n (if-verbose (header X91 , coq.say X91 closing instance section) ,\n log.coq.env.end-section-name X76), acc-clauses current X89]", + "goal_text": "std.do!\n [if (_ = _) \n (, (new_int X83) (std.any->string X83 X84) \n (X85 is HB_unnamed_factory_ ^ X84)) (X85 = _), \n log.coq.env.add-const-noimplicits-failondup X85 X82 \n (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) ff X86, \n X87 = global (const X86), std.drop 0 [global (indt «nat»)] [X88 | _], \n instance.private.check-non-forgetful-inheritance X88 \n (indt «IsSelfA'.axioms_»), \n instance.private.declare-instance (indt «IsSelfA'.axioms_») X88 X87 X89 \n X90, \n if\n (arity (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) =\n arity _) true \n (if-verbose (header X91 , coq.say X91 closing instance section) ,\n log.coq.env.end-section-name X76), acc-clauses current X89]", "goal_id": 1334 } ], @@ -36310,13 +34758,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -36335,8 +34781,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -36361,13 +34806,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -36382,8 +34825,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -36415,8 +34857,7 @@ "Inference", { "current_goal_id": 1332, - "current_goal_text": - "instance.private.optimize-body\n (app\n [global (const «IsSelfA'.phant_Build»), global (indt «nat»), \n global (indc «O»), fun `x` (global (indt «nat»)) c0 \\ c0]) X82", + "current_goal_text": "instance.private.optimize-body\n (app\n [global (const «IsSelfA'.phant_Build»), global (indt «nat»), \n global (indc «O»), fun `x` (global (indt «nat»)) c0 \\ c0]) X82", "current_goal_predicate": "instance.private.optimize-body", "failed_attempts": [], "successful_attempts": [ @@ -36425,13 +34866,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.optimize-body (app [global (const A0) | A1]) A2) :- (\n phant-abbrev _ (const A0) _ ;\n coq.gref->id (const A0) A6 , rex_match phant_ A6), (!), \n (coq.env.const A0 (some A3) _), (hd-beta A3 A1 A4 A5), (unwind A4 A5 A2).", + "rule_text": "(instance.private.optimize-body (app [global (const A0) | A1]) A2) :- (\n phant-abbrev _ (const A0) _ ;\n coq.gref->id (const A0) A6 , rex_match phant_ A6), (!), \n (coq.env.const A0 (some A3) _), (hd-beta A3 A1 A4 A5), (unwind A4 A5 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 309, "column": 0, "character": 13433 @@ -36450,19 +34889,16 @@ }, "siblings": [ { - "goal_text": - "phant-abbrev _ (const «IsSelfA'.phant_Build») _ ;\n coq.gref->id (const «IsSelfA'.phant_Build») X103 , rex_match phant_ X103", + "goal_text": "phant-abbrev _ (const «IsSelfA'.phant_Build») _ ;\n coq.gref->id (const «IsSelfA'.phant_Build») X103 , rex_match phant_ X103", "goal_id": 1335 }, { "goal_text": "!", "goal_id": 1336 }, { - "goal_text": - "coq.env.const «IsSelfA'.phant_Build» (some X104) _", + "goal_text": "coq.env.const «IsSelfA'.phant_Build» (some X104) _", "goal_id": 1337 }, { - "goal_text": - "hd-beta X104 \n [global (indt «nat»), global (indc «O»), \n fun `x` (global (indt «nat»)) c0 \\ c0] X105 X106", + "goal_text": "hd-beta X104 \n [global (indt «nat»), global (indc «O»), \n fun `x` (global (indt «nat»)) c0 \\ c0] X105 X106", "goal_id": 1338 }, { "goal_text": "unwind X105 X106 X82", "goal_id": 1339 } @@ -36476,13 +34912,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.optimize-body (app [global (const A0) | A1]) A2) :- (\n phant-abbrev _ (const A0) _ ;\n coq.gref->id (const A0) A6 , rex_match phant_ A6), (!), \n (coq.env.const A0 (some A3) _), (hd-beta A3 A1 A4 A5), (unwind A4 A5 A2).", + "rule_text": "(instance.private.optimize-body (app [global (const A0) | A1]) A2) :- (\n phant-abbrev _ (const A0) _ ;\n coq.gref->id (const A0) A6 , rex_match phant_ A6), (!), \n (coq.env.const A0 (some A3) _), (hd-beta A3 A1 A4 A5), (unwind A4 A5 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 309, "column": 0, "character": 13433 @@ -36668,13 +35102,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -36693,8 +35125,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -36719,13 +35150,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -36740,8 +35169,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -36773,8 +35201,7 @@ "Inference", { "current_goal_id": 1335, - "current_goal_text": - "phant-abbrev _ (const «IsSelfA'.phant_Build») _ ;\n coq.gref->id (const «IsSelfA'.phant_Build») X103 , rex_match phant_ X103", + "current_goal_text": "phant-abbrev _ (const «IsSelfA'.phant_Build») _ ;\n coq.gref->id (const «IsSelfA'.phant_Build») X103 , rex_match phant_ X103", "current_goal_predicate": ";", "failed_attempts": [], "successful_attempts": [ @@ -36804,8 +35231,7 @@ }, "siblings": [ { - "goal_text": - "phant-abbrev _ (const «IsSelfA'.phant_Build») _", + "goal_text": "phant-abbrev _ (const «IsSelfA'.phant_Build») _", "goal_id": 1340 } ], @@ -36837,13 +35263,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.optimize-body (app [global (const A0) | A1]) A2) :- (\n phant-abbrev _ (const A0) _ ;\n coq.gref->id (const A0) A6 , rex_match phant_ A6), (!), \n (coq.env.const A0 (some A3) _), (hd-beta A3 A1 A4 A5), (unwind A4 A5 A2).", + "rule_text": "(instance.private.optimize-body (app [global (const A0) | A1]) A2) :- (\n phant-abbrev _ (const A0) _ ;\n coq.gref->id (const A0) A6 , rex_match phant_ A6), (!), \n (coq.env.const A0 (some A3) _), (hd-beta A3 A1 A4 A5), (unwind A4 A5 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 309, "column": 0, "character": 13433 @@ -37029,13 +35453,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -37054,8 +35476,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -37080,13 +35501,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -37101,8 +35520,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -37134,16 +35552,14 @@ "Inference", { "current_goal_id": 1340, - "current_goal_text": - "phant-abbrev _ (const «IsSelfA'.phant_Build») _", + "current_goal_text": "phant-abbrev _ (const «IsSelfA'.phant_Build») _", "current_goal_predicate": "phant-abbrev", "failed_attempts": [ { "rule": [ "UserRule", { - "rule_text": - "(phant-abbrev (indc «HasA.Axioms_») (const «HasA.phant_Build») \n «interleave_context.HasA.Build») :- .", + "rule_text": "(phant-abbrev (indc «HasA.Axioms_») (const «HasA.phant_Build») \n «interleave_context.HasA.Build») :- .", "rule_loc": [ "File", { @@ -37166,8 +35582,7 @@ "rule": [ "UserRule", { - "rule_text": - "(phant-abbrev (indt «HasB.axioms_») (const «HasB.phant_axioms») \n «interleave_context.HasB.axioms») :- .", + "rule_text": "(phant-abbrev (indt «HasB.axioms_») (const «HasB.phant_axioms») \n «interleave_context.HasB.axioms») :- .", "rule_loc": [ "File", { @@ -37190,8 +35605,7 @@ "rule": [ "UserRule", { - "rule_text": - "(phant-abbrev (indc «HasB.Axioms_») (const «HasB.phant_Build») \n «interleave_context.HasB.Build») :- .", + "rule_text": "(phant-abbrev (indc «HasB.Axioms_») (const «HasB.phant_Build») \n «interleave_context.HasB.Build») :- .", "rule_loc": [ "File", { @@ -37214,8 +35628,7 @@ "rule": [ "UserRule", { - "rule_text": - "(phant-abbrev (indt «IsSelfA.axioms_») (const «IsSelfA.phant_axioms») \n «interleave_context.IsSelfA.axioms») :- .", + "rule_text": "(phant-abbrev (indt «IsSelfA.axioms_») (const «IsSelfA.phant_axioms») \n «interleave_context.IsSelfA.axioms») :- .", "rule_loc": [ "File", { @@ -37238,8 +35651,7 @@ "rule": [ "UserRule", { - "rule_text": - "(phant-abbrev (indc «IsSelfA.Axioms_») (const «IsSelfA.phant_Build») \n «interleave_context.IsSelfA.Build») :- .", + "rule_text": "(phant-abbrev (indc «IsSelfA.Axioms_») (const «IsSelfA.phant_Build») \n «interleave_context.IsSelfA.Build») :- .", "rule_loc": [ "File", { @@ -37262,8 +35674,7 @@ "rule": [ "UserRule", { - "rule_text": - "(phant-abbrev (indt «IsSelfA'.axioms_») (const «IsSelfA'.phant_axioms») \n «interleave_context.IsSelfA'.axioms») :- .", + "rule_text": "(phant-abbrev (indt «IsSelfA'.axioms_») (const «IsSelfA'.phant_axioms») \n «interleave_context.IsSelfA'.axioms») :- .", "rule_loc": [ "File", { @@ -37286,8 +35697,7 @@ "rule": [ "UserRule", { - "rule_text": - "(phant-abbrev (indc «IsSelfA'.Axioms_») (const «IsSelfA'.phant_Build») \n «interleave_context.IsSelfA'.Build») :- .", + "rule_text": "(phant-abbrev (indc «IsSelfA'.Axioms_») (const «IsSelfA'.phant_Build») \n «interleave_context.IsSelfA'.Build») :- .", "rule_loc": [ "File", { @@ -37308,8 +35718,7 @@ "rule": [ "UserRule", { - "rule_text": - "(phant-abbrev (indt «HasA.axioms_») (const «HasA.phant_axioms») \n «interleave_context.HasA.axioms») :- .", + "rule_text": "(phant-abbrev (indt «HasA.axioms_») (const «HasA.phant_axioms») \n «interleave_context.HasA.axioms») :- .", "rule_loc": [ "File", { @@ -37338,8 +35747,7 @@ "rule": [ "UserRule", { - "rule_text": - "(phant-abbrev (indt «HasA.axioms_») (const «HasA.phant_axioms») \n «interleave_context.HasA.axioms») :- .", + "rule_text": "(phant-abbrev (indt «HasA.axioms_») (const «HasA.phant_axioms») \n «interleave_context.HasA.axioms») :- .", "rule_loc": [ "File", { @@ -37377,13 +35785,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.optimize-body (app [global (const A0) | A1]) A2) :- (\n phant-abbrev _ (const A0) _ ;\n coq.gref->id (const A0) A6 , rex_match phant_ A6), (!), \n (coq.env.const A0 (some A3) _), (hd-beta A3 A1 A4 A5), (unwind A4 A5 A2).", + "rule_text": "(instance.private.optimize-body (app [global (const A0) | A1]) A2) :- (\n phant-abbrev _ (const A0) _ ;\n coq.gref->id (const A0) A6 , rex_match phant_ A6), (!), \n (coq.env.const A0 (some A3) _), (hd-beta A3 A1 A4 A5), (unwind A4 A5 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 309, "column": 0, "character": 13433 @@ -37569,13 +35975,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -37594,8 +35998,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -37620,13 +36023,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -37641,8 +36042,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -37677,8 +36077,7 @@ "cut_victims": [ { "cut_branch_for_goal": { - "goal_text": - "phant-abbrev _ (const «IsSelfA'.phant_Build») _ ;\n coq.gref->id (const «IsSelfA'.phant_Build») X103 , rex_match phant_ X103", + "goal_text": "phant-abbrev _ (const «IsSelfA'.phant_Build») _ ;\n coq.gref->id (const «IsSelfA'.phant_Build») X103 , rex_match phant_ X103", "goal_id": 1335 }, "cut_branch": { @@ -37696,8 +36095,7 @@ }, { "cut_branch_for_goal": { - "goal_text": - "instance.private.optimize-body\n (app\n [global (const «IsSelfA'.phant_Build»), global (indt «nat»), \n global (indc «O»), fun `x` (global (indt «nat»)) c0 \\ c0]) X82", + "goal_text": "instance.private.optimize-body\n (app\n [global (const «IsSelfA'.phant_Build»), global (indt «nat»), \n global (indc «O»), fun `x` (global (indt «nat»)) c0 \\ c0]) X82", "goal_id": 1332 }, "cut_branch": { @@ -37705,8 +36103,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 314, "column": 0, "character": 13706 @@ -37726,8 +36123,7 @@ "Inference", { "current_goal_id": 1337, - "current_goal_text": - "coq.env.const «IsSelfA'.phant_Build» (some X104) _", + "current_goal_text": "coq.env.const «IsSelfA'.phant_Build» (some X104) _", "current_goal_predicate": "coq.env.const", "failed_attempts": [], "successful_attempts": [ @@ -37738,8 +36134,7 @@ }, "siblings": [ { - "goal_text": - "some X104 =\n some\n (fun `TheType` (sort (typ «interleave_context.386»)) c0 \\\n fun `a` c0 c1 \\\n fun `b` (prod `_` c0 c2 \\ c0) c2 \\\n app [global (indc «IsSelfA'.Axioms_»), c0, c1, c2])", + "goal_text": "some X104 =\n some\n (fun `TheType` (sort (typ «interleave_context.386»)) c0 \\\n fun `a` c0 c1 \\\n fun `b` (prod `_` c0 c2 \\ c0) c2 \\\n app [global (indc «IsSelfA'.Axioms_»), c0, c1, c2])", "goal_id": 1341 } ], @@ -37757,13 +36152,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.optimize-body (app [global (const A0) | A1]) A2) :- (\n phant-abbrev _ (const A0) _ ;\n coq.gref->id (const A0) A6 , rex_match phant_ A6), (!), \n (coq.env.const A0 (some A3) _), (hd-beta A3 A1 A4 A5), (unwind A4 A5 A2).", + "rule_text": "(instance.private.optimize-body (app [global (const A0) | A1]) A2) :- (\n phant-abbrev _ (const A0) _ ;\n coq.gref->id (const A0) A6 , rex_match phant_ A6), (!), \n (coq.env.const A0 (some A3) _), (hd-beta A3 A1 A4 A5), (unwind A4 A5 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 309, "column": 0, "character": 13433 @@ -37949,13 +36342,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -37974,8 +36365,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -38000,13 +36390,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -38021,8 +36409,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -38054,8 +36441,7 @@ "Inference", { "current_goal_id": 1341, - "current_goal_text": - "some X104 =\n some\n (fun `TheType` (sort (typ «interleave_context.386»)) c0 \\\n fun `a` c0 c1 \\\n fun `b` (prod `_` c0 c2 \\ c0) c2 \\\n app [global (indc «IsSelfA'.Axioms_»), c0, c1, c2])", + "current_goal_text": "some X104 =\n some\n (fun `TheType` (sort (typ «interleave_context.386»)) c0 \\\n fun `a` c0 c1 \\\n fun `b` (prod `_` c0 c2 \\ c0) c2 \\\n app [global (indc «IsSelfA'.Axioms_»), c0, c1, c2])", "current_goal_predicate": "=", "failed_attempts": [], "successful_attempts": [ @@ -38089,13 +36475,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.optimize-body (app [global (const A0) | A1]) A2) :- (\n phant-abbrev _ (const A0) _ ;\n coq.gref->id (const A0) A6 , rex_match phant_ A6), (!), \n (coq.env.const A0 (some A3) _), (hd-beta A3 A1 A4 A5), (unwind A4 A5 A2).", + "rule_text": "(instance.private.optimize-body (app [global (const A0) | A1]) A2) :- (\n phant-abbrev _ (const A0) _ ;\n coq.gref->id (const A0) A6 , rex_match phant_ A6), (!), \n (coq.env.const A0 (some A3) _), (hd-beta A3 A1 A4 A5), (unwind A4 A5 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 309, "column": 0, "character": 13433 @@ -38281,13 +36665,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -38306,8 +36688,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -38332,13 +36713,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -38353,8 +36732,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -38386,8 +36764,7 @@ "Inference", { "current_goal_id": 1338, - "current_goal_text": - "hd-beta\n (fun `TheType` (sort (typ «interleave_context.386»)) c0 \\\n fun `a` c0 c1 \\\n fun `b` (prod `_` c0 c2 \\ c0) c2 \\\n app [global (indc «IsSelfA'.Axioms_»), c0, c1, c2]) \n [global (indt «nat»), global (indc «O»), \n fun `x` (global (indt «nat»)) c0 \\ c0] X105 X106", + "current_goal_text": "hd-beta\n (fun `TheType` (sort (typ «interleave_context.386»)) c0 \\\n fun `a` c0 c1 \\\n fun `b` (prod `_` c0 c2 \\ c0) c2 \\\n app [global (indc «IsSelfA'.Axioms_»), c0, c1, c2]) \n [global (indt «nat»), global (indc «O»), \n fun `x` (global (indt «nat»)) c0 \\ c0] X105 X106", "current_goal_predicate": "hd-beta", "failed_attempts": [], "successful_attempts": [ @@ -38396,8 +36773,7 @@ "rule": [ "UserRule", { - "rule_text": - "(hd-beta (fun _ _ A0) [A1 | A2] A3 A4) :- (!), (hd-beta (A0 A1) A2 A3 A4).", + "rule_text": "(hd-beta (fun _ _ A0) [A1 | A2] A3 A4) :- (!), (hd-beta (A0 A1) A2 A3 A4).", "rule_loc": [ "File", { @@ -38426,8 +36802,7 @@ "siblings": [ { "goal_text": "!", "goal_id": 1342 }, { - "goal_text": - "hd-beta\n (fun `a` (global (indt «nat»)) c0 \\\n fun `b` (prod `_` (global (indt «nat»)) c1 \\ global (indt «nat»)) c1 \\\n app [global (indc «IsSelfA'.Axioms_»), global (indt «nat»), c0, c1]) \n [global (indc «O»), fun `x` (global (indt «nat»)) c0 \\ c0] X105 X106", + "goal_text": "hd-beta\n (fun `a` (global (indt «nat»)) c0 \\\n fun `b` (prod `_` (global (indt «nat»)) c1 \\ global (indt «nat»)) c1 \\\n app [global (indc «IsSelfA'.Axioms_»), global (indt «nat»), c0, c1]) \n [global (indc «O»), fun `x` (global (indt «nat»)) c0 \\ c0] X105 X106", "goal_id": 1343 } ], @@ -38440,8 +36815,7 @@ "rule": [ "UserRule", { - "rule_text": - "(hd-beta (fun _ _ A0) [A1 | A2] A3 A4) :- (!), (hd-beta (A0 A1) A2 A3 A4).", + "rule_text": "(hd-beta (fun _ _ A0) [A1 | A2] A3 A4) :- (!), (hd-beta (A0 A1) A2 A3 A4).", "rule_loc": [ "File", { @@ -38460,13 +36834,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.optimize-body (app [global (const A0) | A1]) A2) :- (\n phant-abbrev _ (const A0) _ ;\n coq.gref->id (const A0) A6 , rex_match phant_ A6), (!), \n (coq.env.const A0 (some A3) _), (hd-beta A3 A1 A4 A5), (unwind A4 A5 A2).", + "rule_text": "(instance.private.optimize-body (app [global (const A0) | A1]) A2) :- (\n phant-abbrev _ (const A0) _ ;\n coq.gref->id (const A0) A6 , rex_match phant_ A6), (!), \n (coq.env.const A0 (some A3) _), (hd-beta A3 A1 A4 A5), (unwind A4 A5 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 309, "column": 0, "character": 13433 @@ -38652,13 +37024,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -38677,8 +37047,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -38703,13 +37072,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -38724,8 +37091,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -38760,8 +37126,7 @@ "cut_victims": [ { "cut_branch_for_goal": { - "goal_text": - "hd-beta X104 \n [global (indt «nat»), global (indc «O»), \n fun `x` (global (indt «nat»)) c0 \\ c0] X105 X106", + "goal_text": "hd-beta X104 \n [global (indt «nat»), global (indc «O»), \n fun `x` (global (indt «nat»)) c0 \\ c0] X105 X106", "goal_id": 1338 }, "cut_branch": { @@ -38789,8 +37154,7 @@ "Inference", { "current_goal_id": 1343, - "current_goal_text": - "hd-beta\n (fun `a` (global (indt «nat»)) c0 \\\n fun `b` (prod `_` (global (indt «nat»)) c1 \\ global (indt «nat»)) c1 \\\n app [global (indc «IsSelfA'.Axioms_»), global (indt «nat»), c0, c1]) \n [global (indc «O»), fun `x` (global (indt «nat»)) c0 \\ c0] X105 X106", + "current_goal_text": "hd-beta\n (fun `a` (global (indt «nat»)) c0 \\\n fun `b` (prod `_` (global (indt «nat»)) c1 \\ global (indt «nat»)) c1 \\\n app [global (indc «IsSelfA'.Axioms_»), global (indt «nat»), c0, c1]) \n [global (indc «O»), fun `x` (global (indt «nat»)) c0 \\ c0] X105 X106", "current_goal_predicate": "hd-beta", "failed_attempts": [], "successful_attempts": [ @@ -38799,8 +37163,7 @@ "rule": [ "UserRule", { - "rule_text": - "(hd-beta (fun _ _ A0) [A1 | A2] A3 A4) :- (!), (hd-beta (A0 A1) A2 A3 A4).", + "rule_text": "(hd-beta (fun _ _ A0) [A1 | A2] A3 A4) :- (!), (hd-beta (A0 A1) A2 A3 A4).", "rule_loc": [ "File", { @@ -38829,8 +37192,7 @@ "siblings": [ { "goal_text": "!", "goal_id": 1344 }, { - "goal_text": - "hd-beta\n (fun `b` (prod `_` (global (indt «nat»)) c0 \\ global (indt «nat»)) c0 \\\n app\n [global (indc «IsSelfA'.Axioms_»), global (indt «nat»), \n global (indc «O»), c0]) [fun `x` (global (indt «nat»)) c0 \\ c0] \n X105 X106", + "goal_text": "hd-beta\n (fun `b` (prod `_` (global (indt «nat»)) c0 \\ global (indt «nat»)) c0 \\\n app\n [global (indc «IsSelfA'.Axioms_»), global (indt «nat»), \n global (indc «O»), c0]) [fun `x` (global (indt «nat»)) c0 \\ c0] \n X105 X106", "goal_id": 1345 } ], @@ -38843,8 +37205,7 @@ "rule": [ "UserRule", { - "rule_text": - "(hd-beta (fun _ _ A0) [A1 | A2] A3 A4) :- (!), (hd-beta (A0 A1) A2 A3 A4).", + "rule_text": "(hd-beta (fun _ _ A0) [A1 | A2] A3 A4) :- (!), (hd-beta (A0 A1) A2 A3 A4).", "rule_loc": [ "File", { @@ -38863,8 +37224,7 @@ "rule": [ "UserRule", { - "rule_text": - "(hd-beta (fun _ _ A0) [A1 | A2] A3 A4) :- (!), (hd-beta (A0 A1) A2 A3 A4).", + "rule_text": "(hd-beta (fun _ _ A0) [A1 | A2] A3 A4) :- (!), (hd-beta (A0 A1) A2 A3 A4).", "rule_loc": [ "File", { @@ -38883,13 +37243,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.optimize-body (app [global (const A0) | A1]) A2) :- (\n phant-abbrev _ (const A0) _ ;\n coq.gref->id (const A0) A6 , rex_match phant_ A6), (!), \n (coq.env.const A0 (some A3) _), (hd-beta A3 A1 A4 A5), (unwind A4 A5 A2).", + "rule_text": "(instance.private.optimize-body (app [global (const A0) | A1]) A2) :- (\n phant-abbrev _ (const A0) _ ;\n coq.gref->id (const A0) A6 , rex_match phant_ A6), (!), \n (coq.env.const A0 (some A3) _), (hd-beta A3 A1 A4 A5), (unwind A4 A5 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 309, "column": 0, "character": 13433 @@ -39075,13 +37433,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -39100,8 +37456,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -39126,13 +37481,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -39147,8 +37500,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -39183,8 +37535,7 @@ "cut_victims": [ { "cut_branch_for_goal": { - "goal_text": - "hd-beta\n (fun `a` (global (indt «nat»)) c0 \\\n fun `b` (prod `_` (global (indt «nat»)) c1 \\ global (indt «nat»)) c1 \\\n app [global (indc «IsSelfA'.Axioms_»), global (indt «nat»), c0, c1]) \n [global (indc «O»), fun `x` (global (indt «nat»)) c0 \\ c0] X105 X106", + "goal_text": "hd-beta\n (fun `a` (global (indt «nat»)) c0 \\\n fun `b` (prod `_` (global (indt «nat»)) c1 \\ global (indt «nat»)) c1 \\\n app [global (indc «IsSelfA'.Axioms_»), global (indt «nat»), c0, c1]) \n [global (indc «O»), fun `x` (global (indt «nat»)) c0 \\ c0] X105 X106", "goal_id": 1343 }, "cut_branch": { @@ -39212,8 +37563,7 @@ "Inference", { "current_goal_id": 1345, - "current_goal_text": - "hd-beta\n (fun `b` (prod `_` (global (indt «nat»)) c0 \\ global (indt «nat»)) c0 \\\n app\n [global (indc «IsSelfA'.Axioms_»), global (indt «nat»), \n global (indc «O»), c0]) [fun `x` (global (indt «nat»)) c0 \\ c0] \n X105 X106", + "current_goal_text": "hd-beta\n (fun `b` (prod `_` (global (indt «nat»)) c0 \\ global (indt «nat»)) c0 \\\n app\n [global (indc «IsSelfA'.Axioms_»), global (indt «nat»), \n global (indc «O»), c0]) [fun `x` (global (indt «nat»)) c0 \\ c0] \n X105 X106", "current_goal_predicate": "hd-beta", "failed_attempts": [], "successful_attempts": [ @@ -39222,8 +37572,7 @@ "rule": [ "UserRule", { - "rule_text": - "(hd-beta (fun _ _ A0) [A1 | A2] A3 A4) :- (!), (hd-beta (A0 A1) A2 A3 A4).", + "rule_text": "(hd-beta (fun _ _ A0) [A1 | A2] A3 A4) :- (!), (hd-beta (A0 A1) A2 A3 A4).", "rule_loc": [ "File", { @@ -39251,8 +37600,7 @@ "siblings": [ { "goal_text": "!", "goal_id": 1346 }, { - "goal_text": - "hd-beta\n (app\n [global (indc «IsSelfA'.Axioms_»), global (indt «nat»), \n global (indc «O»), fun `x` (global (indt «nat»)) c0 \\ c0]) [] X105 \n X106", + "goal_text": "hd-beta\n (app\n [global (indc «IsSelfA'.Axioms_»), global (indt «nat»), \n global (indc «O»), fun `x` (global (indt «nat»)) c0 \\ c0]) [] X105 \n X106", "goal_id": 1347 } ], @@ -39265,8 +37613,7 @@ "rule": [ "UserRule", { - "rule_text": - "(hd-beta (fun _ _ A0) [A1 | A2] A3 A4) :- (!), (hd-beta (A0 A1) A2 A3 A4).", + "rule_text": "(hd-beta (fun _ _ A0) [A1 | A2] A3 A4) :- (!), (hd-beta (A0 A1) A2 A3 A4).", "rule_loc": [ "File", { @@ -39285,8 +37632,7 @@ "rule": [ "UserRule", { - "rule_text": - "(hd-beta (fun _ _ A0) [A1 | A2] A3 A4) :- (!), (hd-beta (A0 A1) A2 A3 A4).", + "rule_text": "(hd-beta (fun _ _ A0) [A1 | A2] A3 A4) :- (!), (hd-beta (A0 A1) A2 A3 A4).", "rule_loc": [ "File", { @@ -39305,8 +37651,7 @@ "rule": [ "UserRule", { - "rule_text": - "(hd-beta (fun _ _ A0) [A1 | A2] A3 A4) :- (!), (hd-beta (A0 A1) A2 A3 A4).", + "rule_text": "(hd-beta (fun _ _ A0) [A1 | A2] A3 A4) :- (!), (hd-beta (A0 A1) A2 A3 A4).", "rule_loc": [ "File", { @@ -39325,13 +37670,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.optimize-body (app [global (const A0) | A1]) A2) :- (\n phant-abbrev _ (const A0) _ ;\n coq.gref->id (const A0) A6 , rex_match phant_ A6), (!), \n (coq.env.const A0 (some A3) _), (hd-beta A3 A1 A4 A5), (unwind A4 A5 A2).", + "rule_text": "(instance.private.optimize-body (app [global (const A0) | A1]) A2) :- (\n phant-abbrev _ (const A0) _ ;\n coq.gref->id (const A0) A6 , rex_match phant_ A6), (!), \n (coq.env.const A0 (some A3) _), (hd-beta A3 A1 A4 A5), (unwind A4 A5 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 309, "column": 0, "character": 13433 @@ -39517,13 +37860,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -39542,8 +37883,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -39568,13 +37908,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -39589,8 +37927,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -39625,8 +37962,7 @@ "cut_victims": [ { "cut_branch_for_goal": { - "goal_text": - "hd-beta\n (fun `b` (prod `_` (global (indt «nat»)) c0 \\ global (indt «nat»)) c0 \\\n app\n [global (indc «IsSelfA'.Axioms_»), global (indt «nat»), \n global (indc «O»), c0]) [fun `x` (global (indt «nat»)) c0 \\ c0] \n X105 X106", + "goal_text": "hd-beta\n (fun `b` (prod `_` (global (indt «nat»)) c0 \\ global (indt «nat»)) c0 \\\n app\n [global (indc «IsSelfA'.Axioms_»), global (indt «nat»), \n global (indc «O»), c0]) [fun `x` (global (indt «nat»)) c0 \\ c0] \n X105 X106", "goal_id": 1345 }, "cut_branch": { @@ -39654,8 +37990,7 @@ "Inference", { "current_goal_id": 1347, - "current_goal_text": - "hd-beta\n (app\n [global (indc «IsSelfA'.Axioms_»), global (indt «nat»), \n global (indc «O»), fun `x` (global (indt «nat»)) c0 \\ c0]) [] X105 \n X106", + "current_goal_text": "hd-beta\n (app\n [global (indc «IsSelfA'.Axioms_»), global (indt «nat»), \n global (indc «O»), fun `x` (global (indt «nat»)) c0 \\ c0]) [] X105 \n X106", "current_goal_predicate": "hd-beta", "failed_attempts": [], "successful_attempts": [ @@ -39664,8 +37999,7 @@ "rule": [ "UserRule", { - "rule_text": - "(hd-beta (app [A0 | A1]) A2 A3 A4) :- (!), (std.append A1 A2 A5), \n (hd-beta A0 A5 A3 A4).", + "rule_text": "(hd-beta (app [A0 | A1]) A2 A3 A4) :- (!), (std.append A1 A2 A5), \n (hd-beta A0 A5 A3 A4).", "rule_loc": [ "File", { @@ -39691,13 +38025,11 @@ "siblings": [ { "goal_text": "!", "goal_id": 1348 }, { - "goal_text": - "std.append\n [global (indt «nat»), global (indc «O»), \n fun `x` (global (indt «nat»)) c0 \\ c0] [] X107", + "goal_text": "std.append\n [global (indt «nat»), global (indc «O»), \n fun `x` (global (indt «nat»)) c0 \\ c0] [] X107", "goal_id": 1349 }, { - "goal_text": - "hd-beta (global (indc «IsSelfA'.Axioms_»)) X107 X105 X106", + "goal_text": "hd-beta (global (indc «IsSelfA'.Axioms_»)) X107 X105 X106", "goal_id": 1350 } ], @@ -39710,8 +38042,7 @@ "rule": [ "UserRule", { - "rule_text": - "(hd-beta (app [A0 | A1]) A2 A3 A4) :- (!), (std.append A1 A2 A5), \n (hd-beta A0 A5 A3 A4).", + "rule_text": "(hd-beta (app [A0 | A1]) A2 A3 A4) :- (!), (std.append A1 A2 A5), \n (hd-beta A0 A5 A3 A4).", "rule_loc": [ "File", { @@ -39730,8 +38061,7 @@ "rule": [ "UserRule", { - "rule_text": - "(hd-beta (fun _ _ A0) [A1 | A2] A3 A4) :- (!), (hd-beta (A0 A1) A2 A3 A4).", + "rule_text": "(hd-beta (fun _ _ A0) [A1 | A2] A3 A4) :- (!), (hd-beta (A0 A1) A2 A3 A4).", "rule_loc": [ "File", { @@ -39750,8 +38080,7 @@ "rule": [ "UserRule", { - "rule_text": - "(hd-beta (fun _ _ A0) [A1 | A2] A3 A4) :- (!), (hd-beta (A0 A1) A2 A3 A4).", + "rule_text": "(hd-beta (fun _ _ A0) [A1 | A2] A3 A4) :- (!), (hd-beta (A0 A1) A2 A3 A4).", "rule_loc": [ "File", { @@ -39770,8 +38099,7 @@ "rule": [ "UserRule", { - "rule_text": - "(hd-beta (fun _ _ A0) [A1 | A2] A3 A4) :- (!), (hd-beta (A0 A1) A2 A3 A4).", + "rule_text": "(hd-beta (fun _ _ A0) [A1 | A2] A3 A4) :- (!), (hd-beta (A0 A1) A2 A3 A4).", "rule_loc": [ "File", { @@ -39790,13 +38118,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.optimize-body (app [global (const A0) | A1]) A2) :- (\n phant-abbrev _ (const A0) _ ;\n coq.gref->id (const A0) A6 , rex_match phant_ A6), (!), \n (coq.env.const A0 (some A3) _), (hd-beta A3 A1 A4 A5), (unwind A4 A5 A2).", + "rule_text": "(instance.private.optimize-body (app [global (const A0) | A1]) A2) :- (\n phant-abbrev _ (const A0) _ ;\n coq.gref->id (const A0) A6 , rex_match phant_ A6), (!), \n (coq.env.const A0 (some A3) _), (hd-beta A3 A1 A4 A5), (unwind A4 A5 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 309, "column": 0, "character": 13433 @@ -39982,13 +38308,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -40007,8 +38331,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -40033,13 +38356,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -40054,8 +38375,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -40090,8 +38410,7 @@ "cut_victims": [ { "cut_branch_for_goal": { - "goal_text": - "hd-beta\n (app\n [global (indc «IsSelfA'.Axioms_»), global (indt «nat»), \n global (indc «O»), fun `x` (global (indt «nat»)) c0 \\ c0]) [] X105 \n X106", + "goal_text": "hd-beta\n (app\n [global (indc «IsSelfA'.Axioms_»), global (indt «nat»), \n global (indc «O»), fun `x` (global (indt «nat»)) c0 \\ c0]) [] X105 \n X106", "goal_id": 1347 }, "cut_branch": { @@ -40119,8 +38438,7 @@ "Inference", { "current_goal_id": 1349, - "current_goal_text": - "std.append\n [global (indt «nat»), global (indc «O»), \n fun `x` (global (indt «nat»)) c0 \\ c0] [] X107", + "current_goal_text": "std.append\n [global (indt «nat»), global (indc «O»), \n fun `x` (global (indt «nat»)) c0 \\ c0] [] X107", "current_goal_predicate": "std.append", "failed_attempts": [], "successful_attempts": [ @@ -40129,8 +38447,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.append [A0 | A1] A2 [A0 | A3]) :- (std.append A1 A2 A3).", + "rule_text": "(std.append [A0 | A1] A2 [A0 | A3]) :- (std.append A1 A2 A3).", "rule_loc": [ "File", { @@ -40154,8 +38471,7 @@ }, "siblings": [ { - "goal_text": - "std.append [global (indc «O»), fun `x` (global (indt «nat»)) c0 \\ c0] [] \n X108", + "goal_text": "std.append [global (indc «O»), fun `x` (global (indt «nat»)) c0 \\ c0] [] \n X108", "goal_id": 1351 } ], @@ -40168,8 +38484,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.append [A0 | A1] A2 [A0 | A3]) :- (std.append A1 A2 A3).", + "rule_text": "(std.append [A0 | A1] A2 [A0 | A3]) :- (std.append A1 A2 A3).", "rule_loc": [ "File", { @@ -40188,8 +38503,7 @@ "rule": [ "UserRule", { - "rule_text": - "(hd-beta (app [A0 | A1]) A2 A3 A4) :- (!), (std.append A1 A2 A5), \n (hd-beta A0 A5 A3 A4).", + "rule_text": "(hd-beta (app [A0 | A1]) A2 A3 A4) :- (!), (std.append A1 A2 A5), \n (hd-beta A0 A5 A3 A4).", "rule_loc": [ "File", { @@ -40208,8 +38522,7 @@ "rule": [ "UserRule", { - "rule_text": - "(hd-beta (fun _ _ A0) [A1 | A2] A3 A4) :- (!), (hd-beta (A0 A1) A2 A3 A4).", + "rule_text": "(hd-beta (fun _ _ A0) [A1 | A2] A3 A4) :- (!), (hd-beta (A0 A1) A2 A3 A4).", "rule_loc": [ "File", { @@ -40228,8 +38541,7 @@ "rule": [ "UserRule", { - "rule_text": - "(hd-beta (fun _ _ A0) [A1 | A2] A3 A4) :- (!), (hd-beta (A0 A1) A2 A3 A4).", + "rule_text": "(hd-beta (fun _ _ A0) [A1 | A2] A3 A4) :- (!), (hd-beta (A0 A1) A2 A3 A4).", "rule_loc": [ "File", { @@ -40248,8 +38560,7 @@ "rule": [ "UserRule", { - "rule_text": - "(hd-beta (fun _ _ A0) [A1 | A2] A3 A4) :- (!), (hd-beta (A0 A1) A2 A3 A4).", + "rule_text": "(hd-beta (fun _ _ A0) [A1 | A2] A3 A4) :- (!), (hd-beta (A0 A1) A2 A3 A4).", "rule_loc": [ "File", { @@ -40268,13 +38579,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.optimize-body (app [global (const A0) | A1]) A2) :- (\n phant-abbrev _ (const A0) _ ;\n coq.gref->id (const A0) A6 , rex_match phant_ A6), (!), \n (coq.env.const A0 (some A3) _), (hd-beta A3 A1 A4 A5), (unwind A4 A5 A2).", + "rule_text": "(instance.private.optimize-body (app [global (const A0) | A1]) A2) :- (\n phant-abbrev _ (const A0) _ ;\n coq.gref->id (const A0) A6 , rex_match phant_ A6), (!), \n (coq.env.const A0 (some A3) _), (hd-beta A3 A1 A4 A5), (unwind A4 A5 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 309, "column": 0, "character": 13433 @@ -40460,13 +38769,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -40485,8 +38792,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -40511,13 +38817,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -40532,8 +38836,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -40565,8 +38868,7 @@ "Inference", { "current_goal_id": 1351, - "current_goal_text": - "std.append [global (indc «O»), fun `x` (global (indt «nat»)) c0 \\ c0] [] \n X108", + "current_goal_text": "std.append [global (indc «O»), fun `x` (global (indt «nat»)) c0 \\ c0] [] \n X108", "current_goal_predicate": "std.append", "failed_attempts": [], "successful_attempts": [ @@ -40575,8 +38877,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.append [A0 | A1] A2 [A0 | A3]) :- (std.append A1 A2 A3).", + "rule_text": "(std.append [A0 | A1] A2 [A0 | A3]) :- (std.append A1 A2 A3).", "rule_loc": [ "File", { @@ -40600,8 +38901,7 @@ }, "siblings": [ { - "goal_text": - "std.append [fun `x` (global (indt «nat»)) c0 \\ c0] [] X109", + "goal_text": "std.append [fun `x` (global (indt «nat»)) c0 \\ c0] [] X109", "goal_id": 1352 } ], @@ -40614,8 +38914,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.append [A0 | A1] A2 [A0 | A3]) :- (std.append A1 A2 A3).", + "rule_text": "(std.append [A0 | A1] A2 [A0 | A3]) :- (std.append A1 A2 A3).", "rule_loc": [ "File", { @@ -40634,8 +38933,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.append [A0 | A1] A2 [A0 | A3]) :- (std.append A1 A2 A3).", + "rule_text": "(std.append [A0 | A1] A2 [A0 | A3]) :- (std.append A1 A2 A3).", "rule_loc": [ "File", { @@ -40654,8 +38952,7 @@ "rule": [ "UserRule", { - "rule_text": - "(hd-beta (app [A0 | A1]) A2 A3 A4) :- (!), (std.append A1 A2 A5), \n (hd-beta A0 A5 A3 A4).", + "rule_text": "(hd-beta (app [A0 | A1]) A2 A3 A4) :- (!), (std.append A1 A2 A5), \n (hd-beta A0 A5 A3 A4).", "rule_loc": [ "File", { @@ -40674,8 +38971,7 @@ "rule": [ "UserRule", { - "rule_text": - "(hd-beta (fun _ _ A0) [A1 | A2] A3 A4) :- (!), (hd-beta (A0 A1) A2 A3 A4).", + "rule_text": "(hd-beta (fun _ _ A0) [A1 | A2] A3 A4) :- (!), (hd-beta (A0 A1) A2 A3 A4).", "rule_loc": [ "File", { @@ -40694,8 +38990,7 @@ "rule": [ "UserRule", { - "rule_text": - "(hd-beta (fun _ _ A0) [A1 | A2] A3 A4) :- (!), (hd-beta (A0 A1) A2 A3 A4).", + "rule_text": "(hd-beta (fun _ _ A0) [A1 | A2] A3 A4) :- (!), (hd-beta (A0 A1) A2 A3 A4).", "rule_loc": [ "File", { @@ -40714,8 +39009,7 @@ "rule": [ "UserRule", { - "rule_text": - "(hd-beta (fun _ _ A0) [A1 | A2] A3 A4) :- (!), (hd-beta (A0 A1) A2 A3 A4).", + "rule_text": "(hd-beta (fun _ _ A0) [A1 | A2] A3 A4) :- (!), (hd-beta (A0 A1) A2 A3 A4).", "rule_loc": [ "File", { @@ -40734,13 +39028,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.optimize-body (app [global (const A0) | A1]) A2) :- (\n phant-abbrev _ (const A0) _ ;\n coq.gref->id (const A0) A6 , rex_match phant_ A6), (!), \n (coq.env.const A0 (some A3) _), (hd-beta A3 A1 A4 A5), (unwind A4 A5 A2).", + "rule_text": "(instance.private.optimize-body (app [global (const A0) | A1]) A2) :- (\n phant-abbrev _ (const A0) _ ;\n coq.gref->id (const A0) A6 , rex_match phant_ A6), (!), \n (coq.env.const A0 (some A3) _), (hd-beta A3 A1 A4 A5), (unwind A4 A5 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 309, "column": 0, "character": 13433 @@ -40926,13 +39218,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -40951,8 +39241,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -40977,13 +39266,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -40998,8 +39285,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -41031,8 +39317,7 @@ "Inference", { "current_goal_id": 1352, - "current_goal_text": - "std.append [fun `x` (global (indt «nat»)) c0 \\ c0] [] X109", + "current_goal_text": "std.append [fun `x` (global (indt «nat»)) c0 \\ c0] [] X109", "current_goal_predicate": "std.append", "failed_attempts": [], "successful_attempts": [ @@ -41041,8 +39326,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.append [A0 | A1] A2 [A0 | A3]) :- (std.append A1 A2 A3).", + "rule_text": "(std.append [A0 | A1] A2 [A0 | A3]) :- (std.append A1 A2 A3).", "rule_loc": [ "File", { @@ -41078,8 +39362,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.append [A0 | A1] A2 [A0 | A3]) :- (std.append A1 A2 A3).", + "rule_text": "(std.append [A0 | A1] A2 [A0 | A3]) :- (std.append A1 A2 A3).", "rule_loc": [ "File", { @@ -41098,8 +39381,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.append [A0 | A1] A2 [A0 | A3]) :- (std.append A1 A2 A3).", + "rule_text": "(std.append [A0 | A1] A2 [A0 | A3]) :- (std.append A1 A2 A3).", "rule_loc": [ "File", { @@ -41118,8 +39400,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.append [A0 | A1] A2 [A0 | A3]) :- (std.append A1 A2 A3).", + "rule_text": "(std.append [A0 | A1] A2 [A0 | A3]) :- (std.append A1 A2 A3).", "rule_loc": [ "File", { @@ -41138,8 +39419,7 @@ "rule": [ "UserRule", { - "rule_text": - "(hd-beta (app [A0 | A1]) A2 A3 A4) :- (!), (std.append A1 A2 A5), \n (hd-beta A0 A5 A3 A4).", + "rule_text": "(hd-beta (app [A0 | A1]) A2 A3 A4) :- (!), (std.append A1 A2 A5), \n (hd-beta A0 A5 A3 A4).", "rule_loc": [ "File", { @@ -41158,8 +39438,7 @@ "rule": [ "UserRule", { - "rule_text": - "(hd-beta (fun _ _ A0) [A1 | A2] A3 A4) :- (!), (hd-beta (A0 A1) A2 A3 A4).", + "rule_text": "(hd-beta (fun _ _ A0) [A1 | A2] A3 A4) :- (!), (hd-beta (A0 A1) A2 A3 A4).", "rule_loc": [ "File", { @@ -41178,8 +39457,7 @@ "rule": [ "UserRule", { - "rule_text": - "(hd-beta (fun _ _ A0) [A1 | A2] A3 A4) :- (!), (hd-beta (A0 A1) A2 A3 A4).", + "rule_text": "(hd-beta (fun _ _ A0) [A1 | A2] A3 A4) :- (!), (hd-beta (A0 A1) A2 A3 A4).", "rule_loc": [ "File", { @@ -41198,8 +39476,7 @@ "rule": [ "UserRule", { - "rule_text": - "(hd-beta (fun _ _ A0) [A1 | A2] A3 A4) :- (!), (hd-beta (A0 A1) A2 A3 A4).", + "rule_text": "(hd-beta (fun _ _ A0) [A1 | A2] A3 A4) :- (!), (hd-beta (A0 A1) A2 A3 A4).", "rule_loc": [ "File", { @@ -41218,13 +39495,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.optimize-body (app [global (const A0) | A1]) A2) :- (\n phant-abbrev _ (const A0) _ ;\n coq.gref->id (const A0) A6 , rex_match phant_ A6), (!), \n (coq.env.const A0 (some A3) _), (hd-beta A3 A1 A4 A5), (unwind A4 A5 A2).", + "rule_text": "(instance.private.optimize-body (app [global (const A0) | A1]) A2) :- (\n phant-abbrev _ (const A0) _ ;\n coq.gref->id (const A0) A6 , rex_match phant_ A6), (!), \n (coq.env.const A0 (some A3) _), (hd-beta A3 A1 A4 A5), (unwind A4 A5 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 309, "column": 0, "character": 13433 @@ -41410,13 +39685,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -41435,8 +39708,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -41461,13 +39733,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -41482,8 +39752,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -41537,8 +39806,7 @@ } ], "events": [ - [ "Assign", "A0 := []" ], - [ "Assign", "X110 := []" ] + [ "Assign", "A0 := []" ], [ "Assign", "X110 := []" ] ] }, "siblings": [], @@ -41570,8 +39838,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.append [A0 | A1] A2 [A0 | A3]) :- (std.append A1 A2 A3).", + "rule_text": "(std.append [A0 | A1] A2 [A0 | A3]) :- (std.append A1 A2 A3).", "rule_loc": [ "File", { @@ -41590,8 +39857,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.append [A0 | A1] A2 [A0 | A3]) :- (std.append A1 A2 A3).", + "rule_text": "(std.append [A0 | A1] A2 [A0 | A3]) :- (std.append A1 A2 A3).", "rule_loc": [ "File", { @@ -41610,8 +39876,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.append [A0 | A1] A2 [A0 | A3]) :- (std.append A1 A2 A3).", + "rule_text": "(std.append [A0 | A1] A2 [A0 | A3]) :- (std.append A1 A2 A3).", "rule_loc": [ "File", { @@ -41630,8 +39895,7 @@ "rule": [ "UserRule", { - "rule_text": - "(hd-beta (app [A0 | A1]) A2 A3 A4) :- (!), (std.append A1 A2 A5), \n (hd-beta A0 A5 A3 A4).", + "rule_text": "(hd-beta (app [A0 | A1]) A2 A3 A4) :- (!), (std.append A1 A2 A5), \n (hd-beta A0 A5 A3 A4).", "rule_loc": [ "File", { @@ -41650,8 +39914,7 @@ "rule": [ "UserRule", { - "rule_text": - "(hd-beta (fun _ _ A0) [A1 | A2] A3 A4) :- (!), (hd-beta (A0 A1) A2 A3 A4).", + "rule_text": "(hd-beta (fun _ _ A0) [A1 | A2] A3 A4) :- (!), (hd-beta (A0 A1) A2 A3 A4).", "rule_loc": [ "File", { @@ -41670,8 +39933,7 @@ "rule": [ "UserRule", { - "rule_text": - "(hd-beta (fun _ _ A0) [A1 | A2] A3 A4) :- (!), (hd-beta (A0 A1) A2 A3 A4).", + "rule_text": "(hd-beta (fun _ _ A0) [A1 | A2] A3 A4) :- (!), (hd-beta (A0 A1) A2 A3 A4).", "rule_loc": [ "File", { @@ -41690,8 +39952,7 @@ "rule": [ "UserRule", { - "rule_text": - "(hd-beta (fun _ _ A0) [A1 | A2] A3 A4) :- (!), (hd-beta (A0 A1) A2 A3 A4).", + "rule_text": "(hd-beta (fun _ _ A0) [A1 | A2] A3 A4) :- (!), (hd-beta (A0 A1) A2 A3 A4).", "rule_loc": [ "File", { @@ -41710,13 +39971,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.optimize-body (app [global (const A0) | A1]) A2) :- (\n phant-abbrev _ (const A0) _ ;\n coq.gref->id (const A0) A6 , rex_match phant_ A6), (!), \n (coq.env.const A0 (some A3) _), (hd-beta A3 A1 A4 A5), (unwind A4 A5 A2).", + "rule_text": "(instance.private.optimize-body (app [global (const A0) | A1]) A2) :- (\n phant-abbrev _ (const A0) _ ;\n coq.gref->id (const A0) A6 , rex_match phant_ A6), (!), \n (coq.env.const A0 (some A3) _), (hd-beta A3 A1 A4 A5), (unwind A4 A5 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 309, "column": 0, "character": 13433 @@ -41902,13 +40161,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -41927,8 +40184,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -41953,13 +40209,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -41974,8 +40228,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -42007,8 +40260,7 @@ "Inference", { "current_goal_id": 1350, - "current_goal_text": - "hd-beta (global (indc «IsSelfA'.Axioms_»)) \n [global (indt «nat»), global (indc «O»), \n fun `x` (global (indt «nat»)) c0 \\ c0] X105 X106", + "current_goal_text": "hd-beta (global (indc «IsSelfA'.Axioms_»)) \n [global (indt «nat»), global (indc «O»), \n fun `x` (global (indt «nat»)) c0 \\ c0] X105 X106", "current_goal_predicate": "hd-beta", "failed_attempts": [], "successful_attempts": [ @@ -42071,8 +40323,7 @@ "rule": [ "UserRule", { - "rule_text": - "(hd-beta (app [A0 | A1]) A2 A3 A4) :- (!), (std.append A1 A2 A5), \n (hd-beta A0 A5 A3 A4).", + "rule_text": "(hd-beta (app [A0 | A1]) A2 A3 A4) :- (!), (std.append A1 A2 A5), \n (hd-beta A0 A5 A3 A4).", "rule_loc": [ "File", { @@ -42091,8 +40342,7 @@ "rule": [ "UserRule", { - "rule_text": - "(hd-beta (fun _ _ A0) [A1 | A2] A3 A4) :- (!), (hd-beta (A0 A1) A2 A3 A4).", + "rule_text": "(hd-beta (fun _ _ A0) [A1 | A2] A3 A4) :- (!), (hd-beta (A0 A1) A2 A3 A4).", "rule_loc": [ "File", { @@ -42111,8 +40361,7 @@ "rule": [ "UserRule", { - "rule_text": - "(hd-beta (fun _ _ A0) [A1 | A2] A3 A4) :- (!), (hd-beta (A0 A1) A2 A3 A4).", + "rule_text": "(hd-beta (fun _ _ A0) [A1 | A2] A3 A4) :- (!), (hd-beta (A0 A1) A2 A3 A4).", "rule_loc": [ "File", { @@ -42131,8 +40380,7 @@ "rule": [ "UserRule", { - "rule_text": - "(hd-beta (fun _ _ A0) [A1 | A2] A3 A4) :- (!), (hd-beta (A0 A1) A2 A3 A4).", + "rule_text": "(hd-beta (fun _ _ A0) [A1 | A2] A3 A4) :- (!), (hd-beta (A0 A1) A2 A3 A4).", "rule_loc": [ "File", { @@ -42151,13 +40399,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.optimize-body (app [global (const A0) | A1]) A2) :- (\n phant-abbrev _ (const A0) _ ;\n coq.gref->id (const A0) A6 , rex_match phant_ A6), (!), \n (coq.env.const A0 (some A3) _), (hd-beta A3 A1 A4 A5), (unwind A4 A5 A2).", + "rule_text": "(instance.private.optimize-body (app [global (const A0) | A1]) A2) :- (\n phant-abbrev _ (const A0) _ ;\n coq.gref->id (const A0) A6 , rex_match phant_ A6), (!), \n (coq.env.const A0 (some A3) _), (hd-beta A3 A1 A4 A5), (unwind A4 A5 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 309, "column": 0, "character": 13433 @@ -42343,13 +40589,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -42368,8 +40612,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -42394,13 +40637,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -42415,8 +40656,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -42448,8 +40688,7 @@ "Inference", { "current_goal_id": 1339, - "current_goal_text": - "unwind (global (indc «IsSelfA'.Axioms_»)) \n [global (indt «nat»), global (indc «O»), \n fun `x` (global (indt «nat»)) c0 \\ c0] X82", + "current_goal_text": "unwind (global (indc «IsSelfA'.Axioms_»)) \n [global (indt «nat»), global (indc «O»), \n fun `x` (global (indt «nat»)) c0 \\ c0] X82", "current_goal_predicate": "unwind", "failed_attempts": [], "successful_attempts": [ @@ -42458,8 +40697,7 @@ "rule": [ "UserRule", { - "rule_text": - "(unwind A0 A1 A2) :- (if (var A0) (coq.mk-app-uvar A0 A1 A2) \n (coq.mk-app A0 A1 A2)).", + "rule_text": "(unwind A0 A1 A2) :- (if (var A0) (coq.mk-app-uvar A0 A1 A2) \n (coq.mk-app A0 A1 A2)).", "rule_loc": [ "File", { @@ -42482,8 +40720,7 @@ }, "siblings": [ { - "goal_text": - "if (var (global (indc «IsSelfA'.Axioms_»))) \n (coq.mk-app-uvar (global (indc «IsSelfA'.Axioms_»)) \n [global (indt «nat»), global (indc «O»), \n fun `x` (global (indt «nat»)) c0 \\ c0] X82) \n (coq.mk-app (global (indc «IsSelfA'.Axioms_»)) \n [global (indt «nat»), global (indc «O»), \n fun `x` (global (indt «nat»)) c0 \\ c0] X82)", + "goal_text": "if (var (global (indc «IsSelfA'.Axioms_»))) \n (coq.mk-app-uvar (global (indc «IsSelfA'.Axioms_»)) \n [global (indt «nat»), global (indc «O»), \n fun `x` (global (indt «nat»)) c0 \\ c0] X82) \n (coq.mk-app (global (indc «IsSelfA'.Axioms_»)) \n [global (indt «nat»), global (indc «O»), \n fun `x` (global (indt «nat»)) c0 \\ c0] X82)", "goal_id": 1354 } ], @@ -42496,8 +40733,7 @@ "rule": [ "UserRule", { - "rule_text": - "(unwind A0 A1 A2) :- (if (var A0) (coq.mk-app-uvar A0 A1 A2) \n (coq.mk-app A0 A1 A2)).", + "rule_text": "(unwind A0 A1 A2) :- (if (var A0) (coq.mk-app-uvar A0 A1 A2) \n (coq.mk-app A0 A1 A2)).", "rule_loc": [ "File", { @@ -42516,13 +40752,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.optimize-body (app [global (const A0) | A1]) A2) :- (\n phant-abbrev _ (const A0) _ ;\n coq.gref->id (const A0) A6 , rex_match phant_ A6), (!), \n (coq.env.const A0 (some A3) _), (hd-beta A3 A1 A4 A5), (unwind A4 A5 A2).", + "rule_text": "(instance.private.optimize-body (app [global (const A0) | A1]) A2) :- (\n phant-abbrev _ (const A0) _ ;\n coq.gref->id (const A0) A6 , rex_match phant_ A6), (!), \n (coq.env.const A0 (some A3) _), (hd-beta A3 A1 A4 A5), (unwind A4 A5 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 309, "column": 0, "character": 13433 @@ -42708,13 +40942,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -42733,8 +40965,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -42759,13 +40990,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -42780,8 +41009,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -42813,8 +41041,7 @@ "Inference", { "current_goal_id": 1354, - "current_goal_text": - "if (var (global (indc «IsSelfA'.Axioms_»))) \n (coq.mk-app-uvar (global (indc «IsSelfA'.Axioms_»)) \n [global (indt «nat»), global (indc «O»), \n fun `x` (global (indt «nat»)) c0 \\ c0] X82) \n (coq.mk-app (global (indc «IsSelfA'.Axioms_»)) \n [global (indt «nat»), global (indc «O»), \n fun `x` (global (indt «nat»)) c0 \\ c0] X82)", + "current_goal_text": "if (var (global (indc «IsSelfA'.Axioms_»))) \n (coq.mk-app-uvar (global (indc «IsSelfA'.Axioms_»)) \n [global (indt «nat»), global (indc «O»), \n fun `x` (global (indt «nat»)) c0 \\ c0] X82) \n (coq.mk-app (global (indc «IsSelfA'.Axioms_»)) \n [global (indt «nat»), global (indc «O»), \n fun `x` (global (indt «nat»)) c0 \\ c0] X82)", "current_goal_predicate": "if", "failed_attempts": [], "successful_attempts": [ @@ -42852,8 +41079,7 @@ }, { "goal_text": "!", "goal_id": 1356 }, { - "goal_text": - "coq.mk-app-uvar (global (indc «IsSelfA'.Axioms_»)) \n [global (indt «nat»), global (indc «O»), \n fun `x` (global (indt «nat»)) c0 \\ c0] X82", + "goal_text": "coq.mk-app-uvar (global (indc «IsSelfA'.Axioms_»)) \n [global (indt «nat»), global (indc «O»), \n fun `x` (global (indt «nat»)) c0 \\ c0] X82", "goal_id": 1357 } ], @@ -42885,8 +41111,7 @@ "rule": [ "UserRule", { - "rule_text": - "(unwind A0 A1 A2) :- (if (var A0) (coq.mk-app-uvar A0 A1 A2) \n (coq.mk-app A0 A1 A2)).", + "rule_text": "(unwind A0 A1 A2) :- (if (var A0) (coq.mk-app-uvar A0 A1 A2) \n (coq.mk-app A0 A1 A2)).", "rule_loc": [ "File", { @@ -42905,13 +41130,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.optimize-body (app [global (const A0) | A1]) A2) :- (\n phant-abbrev _ (const A0) _ ;\n coq.gref->id (const A0) A6 , rex_match phant_ A6), (!), \n (coq.env.const A0 (some A3) _), (hd-beta A3 A1 A4 A5), (unwind A4 A5 A2).", + "rule_text": "(instance.private.optimize-body (app [global (const A0) | A1]) A2) :- (\n phant-abbrev _ (const A0) _ ;\n coq.gref->id (const A0) A6 , rex_match phant_ A6), (!), \n (coq.env.const A0 (some A3) _), (hd-beta A3 A1 A4 A5), (unwind A4 A5 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 309, "column": 0, "character": 13433 @@ -43097,13 +41320,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -43122,8 +41343,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -43148,13 +41368,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -43169,8 +41387,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -43238,8 +41455,7 @@ "rule": [ "UserRule", { - "rule_text": - "(unwind A0 A1 A2) :- (if (var A0) (coq.mk-app-uvar A0 A1 A2) \n (coq.mk-app A0 A1 A2)).", + "rule_text": "(unwind A0 A1 A2) :- (if (var A0) (coq.mk-app-uvar A0 A1 A2) \n (coq.mk-app A0 A1 A2)).", "rule_loc": [ "File", { @@ -43258,13 +41474,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.optimize-body (app [global (const A0) | A1]) A2) :- (\n phant-abbrev _ (const A0) _ ;\n coq.gref->id (const A0) A6 , rex_match phant_ A6), (!), \n (coq.env.const A0 (some A3) _), (hd-beta A3 A1 A4 A5), (unwind A4 A5 A2).", + "rule_text": "(instance.private.optimize-body (app [global (const A0) | A1]) A2) :- (\n phant-abbrev _ (const A0) _ ;\n coq.gref->id (const A0) A6 , rex_match phant_ A6), (!), \n (coq.env.const A0 (some A3) _), (hd-beta A3 A1 A4 A5), (unwind A4 A5 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 309, "column": 0, "character": 13433 @@ -43450,13 +41664,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -43475,8 +41687,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -43501,13 +41712,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -43522,8 +41731,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -43555,8 +41763,7 @@ "Inference", { "current_goal_id": 1354, - "current_goal_text": - "if (var (global (indc «IsSelfA'.Axioms_»))) \n (coq.mk-app-uvar (global (indc «IsSelfA'.Axioms_»)) \n [global (indt «nat»), global (indc «O»), \n fun `x` (global (indt «nat»)) c0 \\ c0] X82) \n (coq.mk-app (global (indc «IsSelfA'.Axioms_»)) \n [global (indt «nat»), global (indc «O»), \n fun `x` (global (indt «nat»)) c0 \\ c0] X82)", + "current_goal_text": "if (var (global (indc «IsSelfA'.Axioms_»))) \n (coq.mk-app-uvar (global (indc «IsSelfA'.Axioms_»)) \n [global (indt «nat»), global (indc «O»), \n fun `x` (global (indt «nat»)) c0 \\ c0] X82) \n (coq.mk-app (global (indc «IsSelfA'.Axioms_»)) \n [global (indt «nat»), global (indc «O»), \n fun `x` (global (indt «nat»)) c0 \\ c0] X82)", "current_goal_predicate": "if", "failed_attempts": [], "successful_attempts": [ @@ -43586,8 +41793,7 @@ }, "siblings": [ { - "goal_text": - "coq.mk-app (global (indc «IsSelfA'.Axioms_»)) \n [global (indt «nat»), global (indc «O»), \n fun `x` (global (indt «nat»)) c0 \\ c0] X82", + "goal_text": "coq.mk-app (global (indc «IsSelfA'.Axioms_»)) \n [global (indt «nat»), global (indc «O»), \n fun `x` (global (indt «nat»)) c0 \\ c0] X82", "goal_id": 1358 } ], @@ -43619,8 +41825,7 @@ "rule": [ "UserRule", { - "rule_text": - "(unwind A0 A1 A2) :- (if (var A0) (coq.mk-app-uvar A0 A1 A2) \n (coq.mk-app A0 A1 A2)).", + "rule_text": "(unwind A0 A1 A2) :- (if (var A0) (coq.mk-app-uvar A0 A1 A2) \n (coq.mk-app A0 A1 A2)).", "rule_loc": [ "File", { @@ -43639,13 +41844,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.optimize-body (app [global (const A0) | A1]) A2) :- (\n phant-abbrev _ (const A0) _ ;\n coq.gref->id (const A0) A6 , rex_match phant_ A6), (!), \n (coq.env.const A0 (some A3) _), (hd-beta A3 A1 A4 A5), (unwind A4 A5 A2).", + "rule_text": "(instance.private.optimize-body (app [global (const A0) | A1]) A2) :- (\n phant-abbrev _ (const A0) _ ;\n coq.gref->id (const A0) A6 , rex_match phant_ A6), (!), \n (coq.env.const A0 (some A3) _), (hd-beta A3 A1 A4 A5), (unwind A4 A5 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 309, "column": 0, "character": 13433 @@ -43831,13 +42034,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -43856,8 +42057,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -43882,13 +42082,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -43903,8 +42101,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -43936,8 +42133,7 @@ "Inference", { "current_goal_id": 1358, - "current_goal_text": - "coq.mk-app (global (indc «IsSelfA'.Axioms_»)) \n [global (indt «nat»), global (indc «O»), \n fun `x` (global (indt «nat»)) c0 \\ c0] X82", + "current_goal_text": "coq.mk-app (global (indc «IsSelfA'.Axioms_»)) \n [global (indt «nat»), global (indc «O»), \n fun `x` (global (indt «nat»)) c0 \\ c0] X82", "current_goal_predicate": "coq.mk-app", "failed_attempts": [ { @@ -44043,8 +42239,7 @@ "rule": [ "UserRule", { - "rule_text": - "(unwind A0 A1 A2) :- (if (var A0) (coq.mk-app-uvar A0 A1 A2) \n (coq.mk-app A0 A1 A2)).", + "rule_text": "(unwind A0 A1 A2) :- (if (var A0) (coq.mk-app-uvar A0 A1 A2) \n (coq.mk-app A0 A1 A2)).", "rule_loc": [ "File", { @@ -44063,13 +42258,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.optimize-body (app [global (const A0) | A1]) A2) :- (\n phant-abbrev _ (const A0) _ ;\n coq.gref->id (const A0) A6 , rex_match phant_ A6), (!), \n (coq.env.const A0 (some A3) _), (hd-beta A3 A1 A4 A5), (unwind A4 A5 A2).", + "rule_text": "(instance.private.optimize-body (app [global (const A0) | A1]) A2) :- (\n phant-abbrev _ (const A0) _ ;\n coq.gref->id (const A0) A6 , rex_match phant_ A6), (!), \n (coq.env.const A0 (some A3) _), (hd-beta A3 A1 A4 A5), (unwind A4 A5 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 309, "column": 0, "character": 13433 @@ -44255,13 +42448,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -44280,8 +42471,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -44306,13 +42496,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -44327,8 +42515,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -44366,8 +42553,7 @@ "Inference", { "current_goal_id": 1334, - "current_goal_text": - "std.do!\n [if (_ = _) \n (, (new_int X83) (std.any->string X83 X84) \n (X85 is HB_unnamed_factory_ ^ X84)) (X85 = _), \n log.coq.env.add-const-noimplicits-failondup X85 \n (app\n [global (indc «IsSelfA'.Axioms_»), global (indt «nat»), \n global (indc «O»), fun `x` (global (indt «nat»)) c0 \\ c0]) \n (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) ff X86, \n X87 = global (const X86), std.drop 0 [global (indt «nat»)] [X88 | _], \n instance.private.check-non-forgetful-inheritance X88 \n (indt «IsSelfA'.axioms_»), \n instance.private.declare-instance (indt «IsSelfA'.axioms_») X88 X87 X89 \n X90, \n if\n (arity (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) =\n arity _) true \n (if-verbose (header X91 , coq.say X91 closing instance section) ,\n log.coq.env.end-section-name X76), acc-clauses current X89]", + "current_goal_text": "std.do!\n [if (_ = _) \n (, (new_int X83) (std.any->string X83 X84) \n (X85 is HB_unnamed_factory_ ^ X84)) (X85 = _), \n log.coq.env.add-const-noimplicits-failondup X85 \n (app\n [global (indc «IsSelfA'.Axioms_»), global (indt «nat»), \n global (indc «O»), fun `x` (global (indt «nat»)) c0 \\ c0]) \n (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) ff X86, \n X87 = global (const X86), std.drop 0 [global (indt «nat»)] [X88 | _], \n instance.private.check-non-forgetful-inheritance X88 \n (indt «IsSelfA'.axioms_»), \n instance.private.declare-instance (indt «IsSelfA'.axioms_») X88 X87 X89 \n X90, \n if\n (arity (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) =\n arity _) true \n (if-verbose (header X91 , coq.say X91 closing instance section) ,\n log.coq.env.end-section-name X76), acc-clauses current X89]", "current_goal_predicate": "std.do!", "failed_attempts": [], "successful_attempts": [ @@ -44376,8 +42562,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", "rule_loc": [ "File", { @@ -44402,14 +42587,12 @@ }, "siblings": [ { - "goal_text": - "if (_ = _) \n (, (new_int X83) (std.any->string X83 X84) \n (X85 is HB_unnamed_factory_ ^ X84)) (X85 = _)", + "goal_text": "if (_ = _) \n (, (new_int X83) (std.any->string X83 X84) \n (X85 is HB_unnamed_factory_ ^ X84)) (X85 = _)", "goal_id": 1359 }, { "goal_text": "!", "goal_id": 1360 }, { - "goal_text": - "std.do!\n [log.coq.env.add-const-noimplicits-failondup X85 \n (app\n [global (indc «IsSelfA'.Axioms_»), global (indt «nat»), \n global (indc «O»), fun `x` (global (indt «nat»)) c0 \\ c0]) \n (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) ff X86, \n X87 = global (const X86), std.drop 0 [global (indt «nat»)] [X88 | _], \n instance.private.check-non-forgetful-inheritance X88 \n (indt «IsSelfA'.axioms_»), \n instance.private.declare-instance (indt «IsSelfA'.axioms_») X88 X87 X89 \n X90, \n if\n (arity (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) =\n arity _) true \n (if-verbose (header X91 , coq.say X91 closing instance section) ,\n log.coq.env.end-section-name X76), acc-clauses current X89]", + "goal_text": "std.do!\n [log.coq.env.add-const-noimplicits-failondup X85 \n (app\n [global (indc «IsSelfA'.Axioms_»), global (indt «nat»), \n global (indc «O»), fun `x` (global (indt «nat»)) c0 \\ c0]) \n (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) ff X86, \n X87 = global (const X86), std.drop 0 [global (indt «nat»)] [X88 | _], \n instance.private.check-non-forgetful-inheritance X88 \n (indt «IsSelfA'.axioms_»), \n instance.private.declare-instance (indt «IsSelfA'.axioms_») X88 X87 X89 \n X90, \n if\n (arity (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) =\n arity _) true \n (if-verbose (header X91 , coq.say X91 closing instance section) ,\n log.coq.env.end-section-name X76), acc-clauses current X89]", "goal_id": 1361 } ], @@ -44612,13 +42795,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -44637,8 +42818,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -44663,13 +42843,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -44684,8 +42862,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -44717,8 +42894,7 @@ "Inference", { "current_goal_id": 1359, - "current_goal_text": - "if (_ = _) \n (, (new_int X83) (std.any->string X83 X84) \n (X85 is HB_unnamed_factory_ ^ X84)) (X85 = _)", + "current_goal_text": "if (_ = _) \n (, (new_int X83) (std.any->string X83 X84) \n (X85 is HB_unnamed_factory_ ^ X84)) (X85 = _)", "current_goal_predicate": "if", "failed_attempts": [], "successful_attempts": [ @@ -44751,8 +42927,7 @@ { "goal_text": "_ = _", "goal_id": 1362 }, { "goal_text": "!", "goal_id": 1363 }, { - "goal_text": - ", (new_int X83) (std.any->string X83 X84) (X85 is HB_unnamed_factory_ ^ X84)", + "goal_text": ", (new_int X83) (std.any->string X83 X84) (X85 is HB_unnamed_factory_ ^ X84)", "goal_id": 1364 } ], @@ -44974,13 +43149,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -44999,8 +43172,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -45025,13 +43197,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -45046,8 +43216,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -45312,13 +43481,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -45337,8 +43504,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -45363,13 +43529,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -45384,8 +43548,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -45420,8 +43583,7 @@ "cut_victims": [ { "cut_branch_for_goal": { - "goal_text": - "if (_ = _) \n (, (new_int X83) (std.any->string X83 X84) \n (X85 is HB_unnamed_factory_ ^ X84)) (X85 = _)", + "goal_text": "if (_ = _) \n (, (new_int X83) (std.any->string X83 X84) \n (X85 is HB_unnamed_factory_ ^ X84)) (X85 = _)", "goal_id": 1359 }, "cut_branch": { @@ -45449,8 +43611,7 @@ "Inference", { "current_goal_id": 1364, - "current_goal_text": - ", (new_int X83) (std.any->string X83 X84) (X85 is HB_unnamed_factory_ ^ X84)", + "current_goal_text": ", (new_int X83) (std.any->string X83 X84) (X85 is HB_unnamed_factory_ ^ X84)", "current_goal_predicate": ",", "failed_attempts": [], "successful_attempts": [ @@ -45690,13 +43851,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -45715,8 +43874,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -45741,13 +43899,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -45762,8 +43918,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -46033,13 +44188,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -46058,8 +44211,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -46084,13 +44236,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -46105,8 +44255,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -46381,13 +44530,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -46406,8 +44553,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -46432,13 +44578,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -46453,8 +44597,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -46495,8 +44638,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.any->string A0 A1) :- (term_to_string A0 A1).", + "rule_text": "(std.any->string A0 A1) :- (term_to_string A0 A1).", "rule_loc": [ "File", { @@ -46509,8 +44651,7 @@ } ], "events": [ - [ "Assign", "A0 := 27" ], - [ "Assign", "A1 := X84" ] + [ "Assign", "A0 := 27" ], [ "Assign", "A1 := X84" ] ] }, "siblings": [ @@ -46525,8 +44666,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.any->string A0 A1) :- (term_to_string A0 A1).", + "rule_text": "(std.any->string A0 A1) :- (term_to_string A0 A1).", "rule_loc": [ "File", { @@ -46759,13 +44899,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -46784,8 +44922,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -46810,13 +44947,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -46831,8 +44966,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -46888,8 +45022,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.any->string A0 A1) :- (term_to_string A0 A1).", + "rule_text": "(std.any->string A0 A1) :- (term_to_string A0 A1).", "rule_loc": [ "File", { @@ -47122,13 +45255,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -47147,8 +45278,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -47173,13 +45303,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -47194,8 +45322,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -47256,8 +45383,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.any->string A0 A1) :- (term_to_string A0 A1).", + "rule_text": "(std.any->string A0 A1) :- (term_to_string A0 A1).", "rule_loc": [ "File", { @@ -47490,13 +45616,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -47515,8 +45639,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -47541,13 +45664,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -47562,8 +45683,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -47869,13 +45989,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -47894,8 +46012,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -47920,13 +46037,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -47941,8 +46056,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -48233,13 +46347,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -48258,8 +46370,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -48284,13 +46395,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -48305,8 +46414,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -48600,13 +46708,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -48625,8 +46731,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -48651,13 +46756,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -48672,8 +46775,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -48711,8 +46813,7 @@ "Inference", { "current_goal_id": 1361, - "current_goal_text": - "std.do!\n [log.coq.env.add-const-noimplicits-failondup HB_unnamed_factory_27 \n (app\n [global (indc «IsSelfA'.Axioms_»), global (indt «nat»), \n global (indc «O»), fun `x` (global (indt «nat»)) c0 \\ c0]) \n (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) ff X86, \n X87 = global (const X86), std.drop 0 [global (indt «nat»)] [X88 | _], \n instance.private.check-non-forgetful-inheritance X88 \n (indt «IsSelfA'.axioms_»), \n instance.private.declare-instance (indt «IsSelfA'.axioms_») X88 X87 X89 \n X90, \n if\n (arity (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) =\n arity _) true \n (if-verbose (header X91 , coq.say X91 closing instance section) ,\n log.coq.env.end-section-name X76), acc-clauses current X89]", + "current_goal_text": "std.do!\n [log.coq.env.add-const-noimplicits-failondup HB_unnamed_factory_27 \n (app\n [global (indc «IsSelfA'.Axioms_»), global (indt «nat»), \n global (indc «O»), fun `x` (global (indt «nat»)) c0 \\ c0]) \n (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) ff X86, \n X87 = global (const X86), std.drop 0 [global (indt «nat»)] [X88 | _], \n instance.private.check-non-forgetful-inheritance X88 \n (indt «IsSelfA'.axioms_»), \n instance.private.declare-instance (indt «IsSelfA'.axioms_») X88 X87 X89 \n X90, \n if\n (arity (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) =\n arity _) true \n (if-verbose (header X91 , coq.say X91 closing instance section) ,\n log.coq.env.end-section-name X76), acc-clauses current X89]", "current_goal_predicate": "std.do!", "failed_attempts": [], "successful_attempts": [ @@ -48721,8 +46822,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", "rule_loc": [ "File", { @@ -48747,14 +46847,12 @@ }, "siblings": [ { - "goal_text": - "log.coq.env.add-const-noimplicits-failondup HB_unnamed_factory_27 \n (app\n [global (indc «IsSelfA'.Axioms_»), global (indt «nat»), \n global (indc «O»), fun `x` (global (indt «nat»)) c0 \\ c0]) \n (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) ff X86", + "goal_text": "log.coq.env.add-const-noimplicits-failondup HB_unnamed_factory_27 \n (app\n [global (indc «IsSelfA'.Axioms_»), global (indt «nat»), \n global (indc «O»), fun `x` (global (indt «nat»)) c0 \\ c0]) \n (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) ff X86", "goal_id": 1373 }, { "goal_text": "!", "goal_id": 1374 }, { - "goal_text": - "std.do!\n [X87 = global (const X86), std.drop 0 [global (indt «nat»)] [X88 | _], \n instance.private.check-non-forgetful-inheritance X88 \n (indt «IsSelfA'.axioms_»), \n instance.private.declare-instance (indt «IsSelfA'.axioms_») X88 X87 X89 \n X90, \n if\n (arity (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) =\n arity _) true \n (if-verbose (header X91 , coq.say X91 closing instance section) ,\n log.coq.env.end-section-name X76), acc-clauses current X89]", + "goal_text": "std.do!\n [X87 = global (const X86), std.drop 0 [global (indt «nat»)] [X88 | _], \n instance.private.check-non-forgetful-inheritance X88 \n (indt «IsSelfA'.axioms_»), \n instance.private.declare-instance (indt «IsSelfA'.axioms_») X88 X87 X89 \n X90, \n if\n (arity (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) =\n arity _) true \n (if-verbose (header X91 , coq.say X91 closing instance section) ,\n log.coq.env.end-section-name X76), acc-clauses current X89]", "goal_id": 1375 } ], @@ -48976,13 +47074,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -49001,8 +47097,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -49027,13 +47122,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -49048,8 +47141,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -49081,10 +47173,8 @@ "Inference", { "current_goal_id": 1373, - "current_goal_text": - "log.coq.env.add-const-noimplicits-failondup HB_unnamed_factory_27 \n (app\n [global (indc «IsSelfA'.Axioms_»), global (indt «nat»), \n global (indc «O»), fun `x` (global (indt «nat»)) c0 \\ c0]) \n (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) ff X86", - "current_goal_predicate": - "log.coq.env.add-const-noimplicits-failondup", + "current_goal_text": "log.coq.env.add-const-noimplicits-failondup HB_unnamed_factory_27 \n (app\n [global (indc «IsSelfA'.Axioms_»), global (indt «nat»), \n global (indc «O»), fun `x` (global (indt «nat»)) c0 \\ c0]) \n (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) ff X86", + "current_goal_predicate": "log.coq.env.add-const-noimplicits-failondup", "failed_attempts": [], "successful_attempts": [ { @@ -49092,13 +47182,11 @@ "rule": [ "UserRule", { - "rule_text": - "(log.coq.env.add-const-noimplicits-failondup A0 A1 A2 A3 A4) :- (std.do!\n [if\n (\n not\n (ground_term\n A2 ;\n ground_term\n A1)) \n (\n ,\n (coq.term->string\n A2 A6) \n (coq.term->string\n A1 A7) \n (coq.error\n HB: cannot infer some information in \n A0 : A6 \n := A7)) \n true, \n coq.env.add-const\n A0 A1 A2 \n A3 A4, \n log.coq.env.add-location\n (\n const A4), \n if\n (\n var A2) \n (\n A5 = none) \n (\n A5 =\n some A2), \n log.private.log-vernac\n (\n log.private.coq.vernac.definition\n A0 A5 A1), \n get-option\n coq:locality \n local =>\n log.coq.arguments.set-implicit\n (const A4) \n [[]]]).", + "rule_text": "(log.coq.env.add-const-noimplicits-failondup A0 A1 A2 A3 A4) :- (std.do!\n [if\n (\n not\n (ground_term\n A2 ;\n ground_term\n A1)) \n (\n ,\n (coq.term->string\n A2 A6) \n (coq.term->string\n A1 A7) \n (coq.error\n HB: cannot infer some information in \n A0 : A6 \n := A7)) \n true, \n coq.env.add-const\n A0 A1 A2 \n A3 A4, \n log.coq.env.add-location\n (\n const A4), \n if\n (\n var A2) \n (\n A5 = none) \n (\n A5 =\n some A2), \n log.private.log-vernac\n (\n log.private.coq.vernac.definition\n A0 A5 A1), \n get-option\n coq:locality \n local =>\n log.coq.arguments.set-implicit\n (const A4) \n [[]]]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 59, "column": 0, "character": 2355 @@ -49122,8 +47210,7 @@ }, "siblings": [ { - "goal_text": - "std.do!\n [if\n (not\n (ground_term\n (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) ;\n ground_term\n (app\n [global (indc «IsSelfA'.Axioms_»), global (indt «nat»), \n global (indc «O»), fun `x` (global (indt «nat»)) c0 \\ c0]))) \n (,\n (coq.term->string\n (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) X111) \n (coq.term->string\n (app\n [global (indc «IsSelfA'.Axioms_»), global (indt «nat»), \n global (indc «O»), fun `x` (global (indt «nat»)) c0 \\ c0]) X112) \n (coq.error HB: cannot infer some information in HB_unnamed_factory_27 : \n X111 := X112)) true, \n coq.env.add-const HB_unnamed_factory_27 \n (app\n [global (indc «IsSelfA'.Axioms_»), global (indt «nat»), \n global (indc «O»), fun `x` (global (indt «nat»)) c0 \\ c0]) \n (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) ff X86, \n log.coq.env.add-location (const X86), \n if (var (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)])) \n (X113 = none) \n (X113 =\n some (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)])), \n log.private.log-vernac\n (log.private.coq.vernac.definition HB_unnamed_factory_27 X113 \n (app\n [global (indc «IsSelfA'.Axioms_»), global (indt «nat»), \n global (indc «O»), fun `x` (global (indt «nat»)) c0 \\ c0])), \n get-option coq:locality local =>\n log.coq.arguments.set-implicit (const X86) [[]]]", + "goal_text": "std.do!\n [if\n (not\n (ground_term\n (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) ;\n ground_term\n (app\n [global (indc «IsSelfA'.Axioms_»), global (indt «nat»), \n global (indc «O»), fun `x` (global (indt «nat»)) c0 \\ c0]))) \n (,\n (coq.term->string\n (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) X111) \n (coq.term->string\n (app\n [global (indc «IsSelfA'.Axioms_»), global (indt «nat»), \n global (indc «O»), fun `x` (global (indt «nat»)) c0 \\ c0]) X112) \n (coq.error HB: cannot infer some information in HB_unnamed_factory_27 : \n X111 := X112)) true, \n coq.env.add-const HB_unnamed_factory_27 \n (app\n [global (indc «IsSelfA'.Axioms_»), global (indt «nat»), \n global (indc «O»), fun `x` (global (indt «nat»)) c0 \\ c0]) \n (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) ff X86, \n log.coq.env.add-location (const X86), \n if (var (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)])) \n (X113 = none) \n (X113 =\n some (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)])), \n log.private.log-vernac\n (log.private.coq.vernac.definition HB_unnamed_factory_27 X113 \n (app\n [global (indc «IsSelfA'.Axioms_»), global (indt «nat»), \n global (indc «O»), fun `x` (global (indt «nat»)) c0 \\ c0])), \n get-option coq:locality local =>\n log.coq.arguments.set-implicit (const X86) [[]]]", "goal_id": 1376 } ], @@ -49136,13 +47223,11 @@ "rule": [ "UserRule", { - "rule_text": - "(log.coq.env.add-const-noimplicits-failondup A0 A1 A2 A3 A4) :- (std.do!\n [if\n (\n not\n (ground_term\n A2 ;\n ground_term\n A1)) \n (\n ,\n (coq.term->string\n A2 A6) \n (coq.term->string\n A1 A7) \n (coq.error\n HB: cannot infer some information in \n A0 : A6 \n := A7)) \n true, \n coq.env.add-const\n A0 A1 A2 \n A3 A4, \n log.coq.env.add-location\n (\n const A4), \n if\n (\n var A2) \n (\n A5 = none) \n (\n A5 =\n some A2), \n log.private.log-vernac\n (\n log.private.coq.vernac.definition\n A0 A5 A1), \n get-option\n coq:locality \n local =>\n log.coq.arguments.set-implicit\n (const A4) \n [[]]]).", + "rule_text": "(log.coq.env.add-const-noimplicits-failondup A0 A1 A2 A3 A4) :- (std.do!\n [if\n (\n not\n (ground_term\n A2 ;\n ground_term\n A1)) \n (\n ,\n (coq.term->string\n A2 A6) \n (coq.term->string\n A1 A7) \n (coq.error\n HB: cannot infer some information in \n A0 : A6 \n := A7)) \n true, \n coq.env.add-const\n A0 A1 A2 \n A3 A4, \n log.coq.env.add-location\n (\n const A4), \n if\n (\n var A2) \n (\n A5 = none) \n (\n A5 =\n some A2), \n log.private.log-vernac\n (\n log.private.coq.vernac.definition\n A0 A5 A1), \n get-option\n coq:locality \n local =>\n log.coq.arguments.set-implicit\n (const A4) \n [[]]]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 59, "column": 0, "character": 2355 @@ -49366,13 +47451,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -49391,8 +47474,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -49417,13 +47499,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -49438,8 +47518,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -49471,8 +47550,7 @@ "Inference", { "current_goal_id": 1376, - "current_goal_text": - "std.do!\n [if\n (not\n (ground_term\n (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) ;\n ground_term\n (app\n [global (indc «IsSelfA'.Axioms_»), global (indt «nat»), \n global (indc «O»), fun `x` (global (indt «nat»)) c0 \\ c0]))) \n (,\n (coq.term->string\n (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) X111) \n (coq.term->string\n (app\n [global (indc «IsSelfA'.Axioms_»), global (indt «nat»), \n global (indc «O»), fun `x` (global (indt «nat»)) c0 \\ c0]) X112) \n (coq.error HB: cannot infer some information in HB_unnamed_factory_27 : \n X111 := X112)) true, \n coq.env.add-const HB_unnamed_factory_27 \n (app\n [global (indc «IsSelfA'.Axioms_»), global (indt «nat»), \n global (indc «O»), fun `x` (global (indt «nat»)) c0 \\ c0]) \n (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) ff X86, \n log.coq.env.add-location (const X86), \n if (var (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)])) \n (X113 = none) \n (X113 =\n some (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)])), \n log.private.log-vernac\n (log.private.coq.vernac.definition HB_unnamed_factory_27 X113 \n (app\n [global (indc «IsSelfA'.Axioms_»), global (indt «nat»), \n global (indc «O»), fun `x` (global (indt «nat»)) c0 \\ c0])), \n get-option coq:locality local =>\n log.coq.arguments.set-implicit (const X86) [[]]]", + "current_goal_text": "std.do!\n [if\n (not\n (ground_term\n (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) ;\n ground_term\n (app\n [global (indc «IsSelfA'.Axioms_»), global (indt «nat»), \n global (indc «O»), fun `x` (global (indt «nat»)) c0 \\ c0]))) \n (,\n (coq.term->string\n (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) X111) \n (coq.term->string\n (app\n [global (indc «IsSelfA'.Axioms_»), global (indt «nat»), \n global (indc «O»), fun `x` (global (indt «nat»)) c0 \\ c0]) X112) \n (coq.error HB: cannot infer some information in HB_unnamed_factory_27 : \n X111 := X112)) true, \n coq.env.add-const HB_unnamed_factory_27 \n (app\n [global (indc «IsSelfA'.Axioms_»), global (indt «nat»), \n global (indc «O»), fun `x` (global (indt «nat»)) c0 \\ c0]) \n (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) ff X86, \n log.coq.env.add-location (const X86), \n if (var (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)])) \n (X113 = none) \n (X113 =\n some (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)])), \n log.private.log-vernac\n (log.private.coq.vernac.definition HB_unnamed_factory_27 X113 \n (app\n [global (indc «IsSelfA'.Axioms_»), global (indt «nat»), \n global (indc «O»), fun `x` (global (indt «nat»)) c0 \\ c0])), \n get-option coq:locality local =>\n log.coq.arguments.set-implicit (const X86) [[]]]", "current_goal_predicate": "std.do!", "failed_attempts": [], "successful_attempts": [ @@ -49481,8 +47559,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", "rule_loc": [ "File", { @@ -49507,14 +47584,12 @@ }, "siblings": [ { - "goal_text": - "if\n (not\n (ground_term\n (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) ;\n ground_term\n (app\n [global (indc «IsSelfA'.Axioms_»), global (indt «nat»), \n global (indc «O»), fun `x` (global (indt «nat»)) c0 \\ c0]))) \n (,\n (coq.term->string\n (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) X111) \n (coq.term->string\n (app\n [global (indc «IsSelfA'.Axioms_»), global (indt «nat»), \n global (indc «O»), fun `x` (global (indt «nat»)) c0 \\ c0]) X112) \n (coq.error HB: cannot infer some information in HB_unnamed_factory_27 : \n X111 := X112)) true", + "goal_text": "if\n (not\n (ground_term\n (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) ;\n ground_term\n (app\n [global (indc «IsSelfA'.Axioms_»), global (indt «nat»), \n global (indc «O»), fun `x` (global (indt «nat»)) c0 \\ c0]))) \n (,\n (coq.term->string\n (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) X111) \n (coq.term->string\n (app\n [global (indc «IsSelfA'.Axioms_»), global (indt «nat»), \n global (indc «O»), fun `x` (global (indt «nat»)) c0 \\ c0]) X112) \n (coq.error HB: cannot infer some information in HB_unnamed_factory_27 : \n X111 := X112)) true", "goal_id": 1377 }, { "goal_text": "!", "goal_id": 1378 }, { - "goal_text": - "std.do!\n [coq.env.add-const HB_unnamed_factory_27 \n (app\n [global (indc «IsSelfA'.Axioms_»), global (indt «nat»), \n global (indc «O»), fun `x` (global (indt «nat»)) c0 \\ c0]) \n (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) ff X86, \n log.coq.env.add-location (const X86), \n if (var (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)])) \n (X113 = none) \n (X113 =\n some (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)])), \n log.private.log-vernac\n (log.private.coq.vernac.definition HB_unnamed_factory_27 X113 \n (app\n [global (indc «IsSelfA'.Axioms_»), global (indt «nat»), \n global (indc «O»), fun `x` (global (indt «nat»)) c0 \\ c0])), \n get-option coq:locality local =>\n log.coq.arguments.set-implicit (const X86) [[]]]", + "goal_text": "std.do!\n [coq.env.add-const HB_unnamed_factory_27 \n (app\n [global (indc «IsSelfA'.Axioms_»), global (indt «nat»), \n global (indc «O»), fun `x` (global (indt «nat»)) c0 \\ c0]) \n (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) ff X86, \n log.coq.env.add-location (const X86), \n if (var (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)])) \n (X113 = none) \n (X113 =\n some (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)])), \n log.private.log-vernac\n (log.private.coq.vernac.definition HB_unnamed_factory_27 X113 \n (app\n [global (indc «IsSelfA'.Axioms_»), global (indt «nat»), \n global (indc «O»), fun `x` (global (indt «nat»)) c0 \\ c0])), \n get-option coq:locality local =>\n log.coq.arguments.set-implicit (const X86) [[]]]", "goal_id": 1379 } ], @@ -49546,13 +47621,11 @@ "rule": [ "UserRule", { - "rule_text": - "(log.coq.env.add-const-noimplicits-failondup A0 A1 A2 A3 A4) :- (std.do!\n [if\n (\n not\n (ground_term\n A2 ;\n ground_term\n A1)) \n (\n ,\n (coq.term->string\n A2 A6) \n (coq.term->string\n A1 A7) \n (coq.error\n HB: cannot infer some information in \n A0 : A6 \n := A7)) \n true, \n coq.env.add-const\n A0 A1 A2 \n A3 A4, \n log.coq.env.add-location\n (\n const A4), \n if\n (\n var A2) \n (\n A5 = none) \n (\n A5 =\n some A2), \n log.private.log-vernac\n (\n log.private.coq.vernac.definition\n A0 A5 A1), \n get-option\n coq:locality \n local =>\n log.coq.arguments.set-implicit\n (const A4) \n [[]]]).", + "rule_text": "(log.coq.env.add-const-noimplicits-failondup A0 A1 A2 A3 A4) :- (std.do!\n [if\n (\n not\n (ground_term\n A2 ;\n ground_term\n A1)) \n (\n ,\n (coq.term->string\n A2 A6) \n (coq.term->string\n A1 A7) \n (coq.error\n HB: cannot infer some information in \n A0 : A6 \n := A7)) \n true, \n coq.env.add-const\n A0 A1 A2 \n A3 A4, \n log.coq.env.add-location\n (\n const A4), \n if\n (\n var A2) \n (\n A5 = none) \n (\n A5 =\n some A2), \n log.private.log-vernac\n (\n log.private.coq.vernac.definition\n A0 A5 A1), \n get-option\n coq:locality \n local =>\n log.coq.arguments.set-implicit\n (const A4) \n [[]]]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 59, "column": 0, "character": 2355 @@ -49776,13 +47849,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -49801,8 +47872,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -49827,13 +47897,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -49848,8 +47916,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -49881,8 +47948,7 @@ "Inference", { "current_goal_id": 1377, - "current_goal_text": - "if\n (not\n (ground_term\n (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) ;\n ground_term\n (app\n [global (indc «IsSelfA'.Axioms_»), global (indt «nat»), \n global (indc «O»), fun `x` (global (indt «nat»)) c0 \\ c0]))) \n (,\n (coq.term->string\n (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) X111) \n (coq.term->string\n (app\n [global (indc «IsSelfA'.Axioms_»), global (indt «nat»), \n global (indc «O»), fun `x` (global (indt «nat»)) c0 \\ c0]) X112) \n (coq.error HB: cannot infer some information in HB_unnamed_factory_27 : \n X111 := X112)) true", + "current_goal_text": "if\n (not\n (ground_term\n (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) ;\n ground_term\n (app\n [global (indc «IsSelfA'.Axioms_»), global (indt «nat»), \n global (indc «O»), fun `x` (global (indt «nat»)) c0 \\ c0]))) \n (,\n (coq.term->string\n (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) X111) \n (coq.term->string\n (app\n [global (indc «IsSelfA'.Axioms_»), global (indt «nat»), \n global (indc «O»), fun `x` (global (indt «nat»)) c0 \\ c0]) X112) \n (coq.error HB: cannot infer some information in HB_unnamed_factory_27 : \n X111 := X112)) true", "current_goal_predicate": "if", "failed_attempts": [], "successful_attempts": [ @@ -49916,14 +47982,12 @@ }, "siblings": [ { - "goal_text": - "not\n (ground_term\n (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) ;\n ground_term\n (app\n [global (indc «IsSelfA'.Axioms_»), global (indt «nat»), \n global (indc «O»), fun `x` (global (indt «nat»)) c0 \\ c0]))", + "goal_text": "not\n (ground_term\n (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) ;\n ground_term\n (app\n [global (indc «IsSelfA'.Axioms_»), global (indt «nat»), \n global (indc «O»), fun `x` (global (indt «nat»)) c0 \\ c0]))", "goal_id": 1380 }, { "goal_text": "!", "goal_id": 1381 }, { - "goal_text": - ",\n (coq.term->string\n (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) X111) \n (coq.term->string\n (app\n [global (indc «IsSelfA'.Axioms_»), global (indt «nat»), \n global (indc «O»), fun `x` (global (indt «nat»)) c0 \\ c0]) X112) \n (coq.error HB: cannot infer some information in HB_unnamed_factory_27 : \n X111 := X112)", + "goal_text": ",\n (coq.term->string\n (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) X111) \n (coq.term->string\n (app\n [global (indc «IsSelfA'.Axioms_»), global (indt «nat»), \n global (indc «O»), fun `x` (global (indt «nat»)) c0 \\ c0]) X112) \n (coq.error HB: cannot infer some information in HB_unnamed_factory_27 : \n X111 := X112)", "goal_id": 1382 } ], @@ -49974,13 +48038,11 @@ "rule": [ "UserRule", { - "rule_text": - "(log.coq.env.add-const-noimplicits-failondup A0 A1 A2 A3 A4) :- (std.do!\n [if\n (\n not\n (ground_term\n A2 ;\n ground_term\n A1)) \n (\n ,\n (coq.term->string\n A2 A6) \n (coq.term->string\n A1 A7) \n (coq.error\n HB: cannot infer some information in \n A0 : A6 \n := A7)) \n true, \n coq.env.add-const\n A0 A1 A2 \n A3 A4, \n log.coq.env.add-location\n (\n const A4), \n if\n (\n var A2) \n (\n A5 = none) \n (\n A5 =\n some A2), \n log.private.log-vernac\n (\n log.private.coq.vernac.definition\n A0 A5 A1), \n get-option\n coq:locality \n local =>\n log.coq.arguments.set-implicit\n (const A4) \n [[]]]).", + "rule_text": "(log.coq.env.add-const-noimplicits-failondup A0 A1 A2 A3 A4) :- (std.do!\n [if\n (\n not\n (ground_term\n A2 ;\n ground_term\n A1)) \n (\n ,\n (coq.term->string\n A2 A6) \n (coq.term->string\n A1 A7) \n (coq.error\n HB: cannot infer some information in \n A0 : A6 \n := A7)) \n true, \n coq.env.add-const\n A0 A1 A2 \n A3 A4, \n log.coq.env.add-location\n (\n const A4), \n if\n (\n var A2) \n (\n A5 = none) \n (\n A5 =\n some A2), \n log.private.log-vernac\n (\n log.private.coq.vernac.definition\n A0 A5 A1), \n get-option\n coq:locality \n local =>\n log.coq.arguments.set-implicit\n (const A4) \n [[]]]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 59, "column": 0, "character": 2355 @@ -50204,13 +48266,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -50229,8 +48289,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -50255,13 +48314,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -50276,8 +48333,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -50309,8 +48365,7 @@ "Inference", { "current_goal_id": 1380, - "current_goal_text": - "not\n (ground_term\n (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) ;\n ground_term\n (app\n [global (indc «IsSelfA'.Axioms_»), global (indt «nat»), \n global (indc «O»), fun `x` (global (indt «nat»)) c0 \\ c0]))", + "current_goal_text": "not\n (ground_term\n (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) ;\n ground_term\n (app\n [global (indc «IsSelfA'.Axioms_»), global (indt «nat»), \n global (indc «O»), fun `x` (global (indt «nat»)) c0 \\ c0]))", "current_goal_predicate": "not", "failed_attempts": [], "successful_attempts": [ @@ -50340,8 +48395,7 @@ }, "siblings": [ { - "goal_text": - "ground_term (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)])\n ;\n ground_term\n (app\n [global (indc «IsSelfA'.Axioms_»), global (indt «nat»), \n global (indc «O»), fun `x` (global (indt «nat»)) c0 \\ c0])", + "goal_text": "ground_term (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)])\n ;\n ground_term\n (app\n [global (indc «IsSelfA'.Axioms_»), global (indt «nat»), \n global (indc «O»), fun `x` (global (indt «nat»)) c0 \\ c0])", "goal_id": 1383 }, { "goal_text": "!", "goal_id": 1384 }, @@ -50413,13 +48467,11 @@ "rule": [ "UserRule", { - "rule_text": - "(log.coq.env.add-const-noimplicits-failondup A0 A1 A2 A3 A4) :- (std.do!\n [if\n (\n not\n (ground_term\n A2 ;\n ground_term\n A1)) \n (\n ,\n (coq.term->string\n A2 A6) \n (coq.term->string\n A1 A7) \n (coq.error\n HB: cannot infer some information in \n A0 : A6 \n := A7)) \n true, \n coq.env.add-const\n A0 A1 A2 \n A3 A4, \n log.coq.env.add-location\n (\n const A4), \n if\n (\n var A2) \n (\n A5 = none) \n (\n A5 =\n some A2), \n log.private.log-vernac\n (\n log.private.coq.vernac.definition\n A0 A5 A1), \n get-option\n coq:locality \n local =>\n log.coq.arguments.set-implicit\n (const A4) \n [[]]]).", + "rule_text": "(log.coq.env.add-const-noimplicits-failondup A0 A1 A2 A3 A4) :- (std.do!\n [if\n (\n not\n (ground_term\n A2 ;\n ground_term\n A1)) \n (\n ,\n (coq.term->string\n A2 A6) \n (coq.term->string\n A1 A7) \n (coq.error\n HB: cannot infer some information in \n A0 : A6 \n := A7)) \n true, \n coq.env.add-const\n A0 A1 A2 \n A3 A4, \n log.coq.env.add-location\n (\n const A4), \n if\n (\n var A2) \n (\n A5 = none) \n (\n A5 =\n some A2), \n log.private.log-vernac\n (\n log.private.coq.vernac.definition\n A0 A5 A1), \n get-option\n coq:locality \n local =>\n log.coq.arguments.set-implicit\n (const A4) \n [[]]]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 59, "column": 0, "character": 2355 @@ -50643,13 +48695,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -50668,8 +48718,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -50694,13 +48743,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -50715,8 +48762,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -50748,8 +48794,7 @@ "Inference", { "current_goal_id": 1383, - "current_goal_text": - "ground_term (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)])\n ;\n ground_term\n (app\n [global (indc «IsSelfA'.Axioms_»), global (indt «nat»), \n global (indc «O»), fun `x` (global (indt «nat»)) c0 \\ c0])", + "current_goal_text": "ground_term (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)])\n ;\n ground_term\n (app\n [global (indc «IsSelfA'.Axioms_»), global (indt «nat»), \n global (indc «O»), fun `x` (global (indt «nat»)) c0 \\ c0])", "current_goal_predicate": ";", "failed_attempts": [], "successful_attempts": [ @@ -50779,8 +48824,7 @@ }, "siblings": [ { - "goal_text": - "ground_term (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)])", + "goal_text": "ground_term (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)])", "goal_id": 1386 } ], @@ -50869,13 +48913,11 @@ "rule": [ "UserRule", { - "rule_text": - "(log.coq.env.add-const-noimplicits-failondup A0 A1 A2 A3 A4) :- (std.do!\n [if\n (\n not\n (ground_term\n A2 ;\n ground_term\n A1)) \n (\n ,\n (coq.term->string\n A2 A6) \n (coq.term->string\n A1 A7) \n (coq.error\n HB: cannot infer some information in \n A0 : A6 \n := A7)) \n true, \n coq.env.add-const\n A0 A1 A2 \n A3 A4, \n log.coq.env.add-location\n (\n const A4), \n if\n (\n var A2) \n (\n A5 = none) \n (\n A5 =\n some A2), \n log.private.log-vernac\n (\n log.private.coq.vernac.definition\n A0 A5 A1), \n get-option\n coq:locality \n local =>\n log.coq.arguments.set-implicit\n (const A4) \n [[]]]).", + "rule_text": "(log.coq.env.add-const-noimplicits-failondup A0 A1 A2 A3 A4) :- (std.do!\n [if\n (\n not\n (ground_term\n A2 ;\n ground_term\n A1)) \n (\n ,\n (coq.term->string\n A2 A6) \n (coq.term->string\n A1 A7) \n (coq.error\n HB: cannot infer some information in \n A0 : A6 \n := A7)) \n true, \n coq.env.add-const\n A0 A1 A2 \n A3 A4, \n log.coq.env.add-location\n (\n const A4), \n if\n (\n var A2) \n (\n A5 = none) \n (\n A5 =\n some A2), \n log.private.log-vernac\n (\n log.private.coq.vernac.definition\n A0 A5 A1), \n get-option\n coq:locality \n local =>\n log.coq.arguments.set-implicit\n (const A4) \n [[]]]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 59, "column": 0, "character": 2355 @@ -51099,13 +49141,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -51124,8 +49164,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -51150,13 +49189,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -51171,8 +49208,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -51204,8 +49240,7 @@ "Inference", { "current_goal_id": 1386, - "current_goal_text": - "ground_term (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)])", + "current_goal_text": "ground_term (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)])", "current_goal_predicate": "ground_term", "failed_attempts": [], "successful_attempts": [ @@ -51305,13 +49340,11 @@ "rule": [ "UserRule", { - "rule_text": - "(log.coq.env.add-const-noimplicits-failondup A0 A1 A2 A3 A4) :- (std.do!\n [if\n (\n not\n (ground_term\n A2 ;\n ground_term\n A1)) \n (\n ,\n (coq.term->string\n A2 A6) \n (coq.term->string\n A1 A7) \n (coq.error\n HB: cannot infer some information in \n A0 : A6 \n := A7)) \n true, \n coq.env.add-const\n A0 A1 A2 \n A3 A4, \n log.coq.env.add-location\n (\n const A4), \n if\n (\n var A2) \n (\n A5 = none) \n (\n A5 =\n some A2), \n log.private.log-vernac\n (\n log.private.coq.vernac.definition\n A0 A5 A1), \n get-option\n coq:locality \n local =>\n log.coq.arguments.set-implicit\n (const A4) \n [[]]]).", + "rule_text": "(log.coq.env.add-const-noimplicits-failondup A0 A1 A2 A3 A4) :- (std.do!\n [if\n (\n not\n (ground_term\n A2 ;\n ground_term\n A1)) \n (\n ,\n (coq.term->string\n A2 A6) \n (coq.term->string\n A1 A7) \n (coq.error\n HB: cannot infer some information in \n A0 : A6 \n := A7)) \n true, \n coq.env.add-const\n A0 A1 A2 \n A3 A4, \n log.coq.env.add-location\n (\n const A4), \n if\n (\n var A2) \n (\n A5 = none) \n (\n A5 =\n some A2), \n log.private.log-vernac\n (\n log.private.coq.vernac.definition\n A0 A5 A1), \n get-option\n coq:locality \n local =>\n log.coq.arguments.set-implicit\n (const A4) \n [[]]]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 59, "column": 0, "character": 2355 @@ -51535,13 +49568,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -51560,8 +49591,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -51586,13 +49616,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -51607,8 +49635,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -51643,8 +49670,7 @@ "cut_victims": [ { "cut_branch_for_goal": { - "goal_text": - "ground_term (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)])\n ;\n ground_term\n (app\n [global (indc «IsSelfA'.Axioms_»), global (indt «nat»), \n global (indc «O»), fun `x` (global (indt «nat»)) c0 \\ c0])", + "goal_text": "ground_term (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)])\n ;\n ground_term\n (app\n [global (indc «IsSelfA'.Axioms_»), global (indt «nat»), \n global (indc «O»), fun `x` (global (indt «nat»)) c0 \\ c0])", "goal_id": 1383 }, "cut_branch": { @@ -51662,8 +49688,7 @@ }, { "cut_branch_for_goal": { - "goal_text": - "not\n (ground_term\n (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) ;\n ground_term\n (app\n [global (indc «IsSelfA'.Axioms_»), global (indt «nat»), \n global (indc «O»), fun `x` (global (indt «nat»)) c0 \\ c0]))", + "goal_text": "not\n (ground_term\n (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) ;\n ground_term\n (app\n [global (indc «IsSelfA'.Axioms_»), global (indt «nat»), \n global (indc «O»), fun `x` (global (indt «nat»)) c0 \\ c0]))", "goal_id": 1380 }, "cut_branch": { @@ -51758,13 +49783,11 @@ "rule": [ "UserRule", { - "rule_text": - "(log.coq.env.add-const-noimplicits-failondup A0 A1 A2 A3 A4) :- (std.do!\n [if\n (\n not\n (ground_term\n A2 ;\n ground_term\n A1)) \n (\n ,\n (coq.term->string\n A2 A6) \n (coq.term->string\n A1 A7) \n (coq.error\n HB: cannot infer some information in \n A0 : A6 \n := A7)) \n true, \n coq.env.add-const\n A0 A1 A2 \n A3 A4, \n log.coq.env.add-location\n (\n const A4), \n if\n (\n var A2) \n (\n A5 = none) \n (\n A5 =\n some A2), \n log.private.log-vernac\n (\n log.private.coq.vernac.definition\n A0 A5 A1), \n get-option\n coq:locality \n local =>\n log.coq.arguments.set-implicit\n (const A4) \n [[]]]).", + "rule_text": "(log.coq.env.add-const-noimplicits-failondup A0 A1 A2 A3 A4) :- (std.do!\n [if\n (\n not\n (ground_term\n A2 ;\n ground_term\n A1)) \n (\n ,\n (coq.term->string\n A2 A6) \n (coq.term->string\n A1 A7) \n (coq.error\n HB: cannot infer some information in \n A0 : A6 \n := A7)) \n true, \n coq.env.add-const\n A0 A1 A2 \n A3 A4, \n log.coq.env.add-location\n (\n const A4), \n if\n (\n var A2) \n (\n A5 = none) \n (\n A5 =\n some A2), \n log.private.log-vernac\n (\n log.private.coq.vernac.definition\n A0 A5 A1), \n get-option\n coq:locality \n local =>\n log.coq.arguments.set-implicit\n (const A4) \n [[]]]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 59, "column": 0, "character": 2355 @@ -51988,13 +50011,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -52013,8 +50034,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -52039,13 +50059,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -52060,8 +50078,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -52093,8 +50110,7 @@ "Inference", { "current_goal_id": 1377, - "current_goal_text": - "if\n (not\n (ground_term\n (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) ;\n ground_term\n (app\n [global (indc «IsSelfA'.Axioms_»), global (indt «nat»), \n global (indc «O»), fun `x` (global (indt «nat»)) c0 \\ c0]))) \n (,\n (coq.term->string\n (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) X111) \n (coq.term->string\n (app\n [global (indc «IsSelfA'.Axioms_»), global (indt «nat»), \n global (indc «O»), fun `x` (global (indt «nat»)) c0 \\ c0]) X112) \n (coq.error HB: cannot infer some information in HB_unnamed_factory_27 : \n X111 := X112)) true", + "current_goal_text": "if\n (not\n (ground_term\n (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) ;\n ground_term\n (app\n [global (indc «IsSelfA'.Axioms_»), global (indt «nat»), \n global (indc «O»), fun `x` (global (indt «nat»)) c0 \\ c0]))) \n (,\n (coq.term->string\n (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) X111) \n (coq.term->string\n (app\n [global (indc «IsSelfA'.Axioms_»), global (indt «nat»), \n global (indc «O»), fun `x` (global (indt «nat»)) c0 \\ c0]) X112) \n (coq.error HB: cannot infer some information in HB_unnamed_factory_27 : \n X111 := X112)) true", "current_goal_predicate": "if", "failed_attempts": [], "successful_attempts": [ @@ -52165,13 +50181,11 @@ "rule": [ "UserRule", { - "rule_text": - "(log.coq.env.add-const-noimplicits-failondup A0 A1 A2 A3 A4) :- (std.do!\n [if\n (\n not\n (ground_term\n A2 ;\n ground_term\n A1)) \n (\n ,\n (coq.term->string\n A2 A6) \n (coq.term->string\n A1 A7) \n (coq.error\n HB: cannot infer some information in \n A0 : A6 \n := A7)) \n true, \n coq.env.add-const\n A0 A1 A2 \n A3 A4, \n log.coq.env.add-location\n (\n const A4), \n if\n (\n var A2) \n (\n A5 = none) \n (\n A5 =\n some A2), \n log.private.log-vernac\n (\n log.private.coq.vernac.definition\n A0 A5 A1), \n get-option\n coq:locality \n local =>\n log.coq.arguments.set-implicit\n (const A4) \n [[]]]).", + "rule_text": "(log.coq.env.add-const-noimplicits-failondup A0 A1 A2 A3 A4) :- (std.do!\n [if\n (\n not\n (ground_term\n A2 ;\n ground_term\n A1)) \n (\n ,\n (coq.term->string\n A2 A6) \n (coq.term->string\n A1 A7) \n (coq.error\n HB: cannot infer some information in \n A0 : A6 \n := A7)) \n true, \n coq.env.add-const\n A0 A1 A2 \n A3 A4, \n log.coq.env.add-location\n (\n const A4), \n if\n (\n var A2) \n (\n A5 = none) \n (\n A5 =\n some A2), \n log.private.log-vernac\n (\n log.private.coq.vernac.definition\n A0 A5 A1), \n get-option\n coq:locality \n local =>\n log.coq.arguments.set-implicit\n (const A4) \n [[]]]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 59, "column": 0, "character": 2355 @@ -52395,13 +50409,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -52420,8 +50432,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -52446,13 +50457,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -52467,8 +50476,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -52590,13 +50598,11 @@ "rule": [ "UserRule", { - "rule_text": - "(log.coq.env.add-const-noimplicits-failondup A0 A1 A2 A3 A4) :- (std.do!\n [if\n (\n not\n (ground_term\n A2 ;\n ground_term\n A1)) \n (\n ,\n (coq.term->string\n A2 A6) \n (coq.term->string\n A1 A7) \n (coq.error\n HB: cannot infer some information in \n A0 : A6 \n := A7)) \n true, \n coq.env.add-const\n A0 A1 A2 \n A3 A4, \n log.coq.env.add-location\n (\n const A4), \n if\n (\n var A2) \n (\n A5 = none) \n (\n A5 =\n some A2), \n log.private.log-vernac\n (\n log.private.coq.vernac.definition\n A0 A5 A1), \n get-option\n coq:locality \n local =>\n log.coq.arguments.set-implicit\n (const A4) \n [[]]]).", + "rule_text": "(log.coq.env.add-const-noimplicits-failondup A0 A1 A2 A3 A4) :- (std.do!\n [if\n (\n not\n (ground_term\n A2 ;\n ground_term\n A1)) \n (\n ,\n (coq.term->string\n A2 A6) \n (coq.term->string\n A1 A7) \n (coq.error\n HB: cannot infer some information in \n A0 : A6 \n := A7)) \n true, \n coq.env.add-const\n A0 A1 A2 \n A3 A4, \n log.coq.env.add-location\n (\n const A4), \n if\n (\n var A2) \n (\n A5 = none) \n (\n A5 =\n some A2), \n log.private.log-vernac\n (\n log.private.coq.vernac.definition\n A0 A5 A1), \n get-option\n coq:locality \n local =>\n log.coq.arguments.set-implicit\n (const A4) \n [[]]]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 59, "column": 0, "character": 2355 @@ -52820,13 +50826,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -52845,8 +50849,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -52871,13 +50874,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -52892,8 +50893,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -52931,8 +50931,7 @@ "Inference", { "current_goal_id": 1379, - "current_goal_text": - "std.do!\n [coq.env.add-const HB_unnamed_factory_27 \n (app\n [global (indc «IsSelfA'.Axioms_»), global (indt «nat»), \n global (indc «O»), fun `x` (global (indt «nat»)) c0 \\ c0]) \n (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) ff X86, \n log.coq.env.add-location (const X86), \n if (var (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)])) \n (X113 = none) \n (X113 =\n some (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)])), \n log.private.log-vernac\n (log.private.coq.vernac.definition HB_unnamed_factory_27 X113 \n (app\n [global (indc «IsSelfA'.Axioms_»), global (indt «nat»), \n global (indc «O»), fun `x` (global (indt «nat»)) c0 \\ c0])), \n get-option coq:locality local =>\n log.coq.arguments.set-implicit (const X86) [[]]]", + "current_goal_text": "std.do!\n [coq.env.add-const HB_unnamed_factory_27 \n (app\n [global (indc «IsSelfA'.Axioms_»), global (indt «nat»), \n global (indc «O»), fun `x` (global (indt «nat»)) c0 \\ c0]) \n (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) ff X86, \n log.coq.env.add-location (const X86), \n if (var (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)])) \n (X113 = none) \n (X113 =\n some (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)])), \n log.private.log-vernac\n (log.private.coq.vernac.definition HB_unnamed_factory_27 X113 \n (app\n [global (indc «IsSelfA'.Axioms_»), global (indt «nat»), \n global (indc «O»), fun `x` (global (indt «nat»)) c0 \\ c0])), \n get-option coq:locality local =>\n log.coq.arguments.set-implicit (const X86) [[]]]", "current_goal_predicate": "std.do!", "failed_attempts": [], "successful_attempts": [ @@ -52941,8 +50940,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", "rule_loc": [ "File", { @@ -52967,14 +50965,12 @@ }, "siblings": [ { - "goal_text": - "coq.env.add-const HB_unnamed_factory_27 \n (app\n [global (indc «IsSelfA'.Axioms_»), global (indt «nat»), \n global (indc «O»), fun `x` (global (indt «nat»)) c0 \\ c0]) \n (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) ff X86", + "goal_text": "coq.env.add-const HB_unnamed_factory_27 \n (app\n [global (indc «IsSelfA'.Axioms_»), global (indt «nat»), \n global (indc «O»), fun `x` (global (indt «nat»)) c0 \\ c0]) \n (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) ff X86", "goal_id": 1388 }, { "goal_text": "!", "goal_id": 1389 }, { - "goal_text": - "std.do!\n [log.coq.env.add-location (const X86), \n if (var (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)])) \n (X113 = none) \n (X113 =\n some (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)])), \n log.private.log-vernac\n (log.private.coq.vernac.definition HB_unnamed_factory_27 X113 \n (app\n [global (indc «IsSelfA'.Axioms_»), global (indt «nat»), \n global (indc «O»), fun `x` (global (indt «nat»)) c0 \\ c0])), \n get-option coq:locality local =>\n log.coq.arguments.set-implicit (const X86) [[]]]", + "goal_text": "std.do!\n [log.coq.env.add-location (const X86), \n if (var (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)])) \n (X113 = none) \n (X113 =\n some (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)])), \n log.private.log-vernac\n (log.private.coq.vernac.definition HB_unnamed_factory_27 X113 \n (app\n [global (indc «IsSelfA'.Axioms_»), global (indt «nat»), \n global (indc «O»), fun `x` (global (indt «nat»)) c0 \\ c0])), \n get-option coq:locality local =>\n log.coq.arguments.set-implicit (const X86) [[]]]", "goal_id": 1390 } ], @@ -53025,13 +51021,11 @@ "rule": [ "UserRule", { - "rule_text": - "(log.coq.env.add-const-noimplicits-failondup A0 A1 A2 A3 A4) :- (std.do!\n [if\n (\n not\n (ground_term\n A2 ;\n ground_term\n A1)) \n (\n ,\n (coq.term->string\n A2 A6) \n (coq.term->string\n A1 A7) \n (coq.error\n HB: cannot infer some information in \n A0 : A6 \n := A7)) \n true, \n coq.env.add-const\n A0 A1 A2 \n A3 A4, \n log.coq.env.add-location\n (\n const A4), \n if\n (\n var A2) \n (\n A5 = none) \n (\n A5 =\n some A2), \n log.private.log-vernac\n (\n log.private.coq.vernac.definition\n A0 A5 A1), \n get-option\n coq:locality \n local =>\n log.coq.arguments.set-implicit\n (const A4) \n [[]]]).", + "rule_text": "(log.coq.env.add-const-noimplicits-failondup A0 A1 A2 A3 A4) :- (std.do!\n [if\n (\n not\n (ground_term\n A2 ;\n ground_term\n A1)) \n (\n ,\n (coq.term->string\n A2 A6) \n (coq.term->string\n A1 A7) \n (coq.error\n HB: cannot infer some information in \n A0 : A6 \n := A7)) \n true, \n coq.env.add-const\n A0 A1 A2 \n A3 A4, \n log.coq.env.add-location\n (\n const A4), \n if\n (\n var A2) \n (\n A5 = none) \n (\n A5 =\n some A2), \n log.private.log-vernac\n (\n log.private.coq.vernac.definition\n A0 A5 A1), \n get-option\n coq:locality \n local =>\n log.coq.arguments.set-implicit\n (const A4) \n [[]]]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 59, "column": 0, "character": 2355 @@ -53255,13 +51249,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -53280,8 +51272,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -53306,13 +51297,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -53327,8 +51316,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -53360,8 +51348,7 @@ "Inference", { "current_goal_id": 1388, - "current_goal_text": - "coq.env.add-const HB_unnamed_factory_27 \n (app\n [global (indc «IsSelfA'.Axioms_»), global (indt «nat»), \n global (indc «O»), fun `x` (global (indt «nat»)) c0 \\ c0]) \n (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) ff X86", + "current_goal_text": "coq.env.add-const HB_unnamed_factory_27 \n (app\n [global (indc «IsSelfA'.Axioms_»), global (indt «nat»), \n global (indc «O»), fun `x` (global (indt «nat»)) c0 \\ c0]) \n (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) ff X86", "current_goal_predicate": "coq.env.add-const", "failed_attempts": [], "successful_attempts": [ @@ -53428,13 +51415,11 @@ "rule": [ "UserRule", { - "rule_text": - "(log.coq.env.add-const-noimplicits-failondup A0 A1 A2 A3 A4) :- (std.do!\n [if\n (\n not\n (ground_term\n A2 ;\n ground_term\n A1)) \n (\n ,\n (coq.term->string\n A2 A6) \n (coq.term->string\n A1 A7) \n (coq.error\n HB: cannot infer some information in \n A0 : A6 \n := A7)) \n true, \n coq.env.add-const\n A0 A1 A2 \n A3 A4, \n log.coq.env.add-location\n (\n const A4), \n if\n (\n var A2) \n (\n A5 = none) \n (\n A5 =\n some A2), \n log.private.log-vernac\n (\n log.private.coq.vernac.definition\n A0 A5 A1), \n get-option\n coq:locality \n local =>\n log.coq.arguments.set-implicit\n (const A4) \n [[]]]).", + "rule_text": "(log.coq.env.add-const-noimplicits-failondup A0 A1 A2 A3 A4) :- (std.do!\n [if\n (\n not\n (ground_term\n A2 ;\n ground_term\n A1)) \n (\n ,\n (coq.term->string\n A2 A6) \n (coq.term->string\n A1 A7) \n (coq.error\n HB: cannot infer some information in \n A0 : A6 \n := A7)) \n true, \n coq.env.add-const\n A0 A1 A2 \n A3 A4, \n log.coq.env.add-location\n (\n const A4), \n if\n (\n var A2) \n (\n A5 = none) \n (\n A5 =\n some A2), \n log.private.log-vernac\n (\n log.private.coq.vernac.definition\n A0 A5 A1), \n get-option\n coq:locality \n local =>\n log.coq.arguments.set-implicit\n (const A4) \n [[]]]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 59, "column": 0, "character": 2355 @@ -53658,13 +51643,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -53683,8 +51666,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -53709,13 +51691,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -53730,8 +51710,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -53830,13 +51809,11 @@ "rule": [ "UserRule", { - "rule_text": - "(log.coq.env.add-const-noimplicits-failondup A0 A1 A2 A3 A4) :- (std.do!\n [if\n (\n not\n (ground_term\n A2 ;\n ground_term\n A1)) \n (\n ,\n (coq.term->string\n A2 A6) \n (coq.term->string\n A1 A7) \n (coq.error\n HB: cannot infer some information in \n A0 : A6 \n := A7)) \n true, \n coq.env.add-const\n A0 A1 A2 \n A3 A4, \n log.coq.env.add-location\n (\n const A4), \n if\n (\n var A2) \n (\n A5 = none) \n (\n A5 =\n some A2), \n log.private.log-vernac\n (\n log.private.coq.vernac.definition\n A0 A5 A1), \n get-option\n coq:locality \n local =>\n log.coq.arguments.set-implicit\n (const A4) \n [[]]]).", + "rule_text": "(log.coq.env.add-const-noimplicits-failondup A0 A1 A2 A3 A4) :- (std.do!\n [if\n (\n not\n (ground_term\n A2 ;\n ground_term\n A1)) \n (\n ,\n (coq.term->string\n A2 A6) \n (coq.term->string\n A1 A7) \n (coq.error\n HB: cannot infer some information in \n A0 : A6 \n := A7)) \n true, \n coq.env.add-const\n A0 A1 A2 \n A3 A4, \n log.coq.env.add-location\n (\n const A4), \n if\n (\n var A2) \n (\n A5 = none) \n (\n A5 =\n some A2), \n log.private.log-vernac\n (\n log.private.coq.vernac.definition\n A0 A5 A1), \n get-option\n coq:locality \n local =>\n log.coq.arguments.set-implicit\n (const A4) \n [[]]]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 59, "column": 0, "character": 2355 @@ -54060,13 +52037,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -54085,8 +52060,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -54111,13 +52085,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -54132,8 +52104,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -54171,8 +52142,7 @@ "Inference", { "current_goal_id": 1390, - "current_goal_text": - "std.do!\n [log.coq.env.add-location (const «HB_unnamed_factory_27»), \n if (var (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)])) \n (X113 = none) \n (X113 =\n some (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)])), \n log.private.log-vernac\n (log.private.coq.vernac.definition HB_unnamed_factory_27 X113 \n (app\n [global (indc «IsSelfA'.Axioms_»), global (indt «nat»), \n global (indc «O»), fun `x` (global (indt «nat»)) c0 \\ c0])), \n get-option coq:locality local =>\n log.coq.arguments.set-implicit (const «HB_unnamed_factory_27») [[]]]", + "current_goal_text": "std.do!\n [log.coq.env.add-location (const «HB_unnamed_factory_27»), \n if (var (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)])) \n (X113 = none) \n (X113 =\n some (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)])), \n log.private.log-vernac\n (log.private.coq.vernac.definition HB_unnamed_factory_27 X113 \n (app\n [global (indc «IsSelfA'.Axioms_»), global (indt «nat»), \n global (indc «O»), fun `x` (global (indt «nat»)) c0 \\ c0])), \n get-option coq:locality local =>\n log.coq.arguments.set-implicit (const «HB_unnamed_factory_27») [[]]]", "current_goal_predicate": "std.do!", "failed_attempts": [], "successful_attempts": [ @@ -54181,8 +52151,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", "rule_loc": [ "File", { @@ -54207,14 +52176,12 @@ }, "siblings": [ { - "goal_text": - "log.coq.env.add-location (const «HB_unnamed_factory_27»)", + "goal_text": "log.coq.env.add-location (const «HB_unnamed_factory_27»)", "goal_id": 1392 }, { "goal_text": "!", "goal_id": 1393 }, { - "goal_text": - "std.do!\n [if (var (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)])) \n (X113 = none) \n (X113 =\n some (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)])), \n log.private.log-vernac\n (log.private.coq.vernac.definition HB_unnamed_factory_27 X113 \n (app\n [global (indc «IsSelfA'.Axioms_»), global (indt «nat»), \n global (indc «O»), fun `x` (global (indt «nat»)) c0 \\ c0])), \n get-option coq:locality local =>\n log.coq.arguments.set-implicit (const «HB_unnamed_factory_27») [[]]]", + "goal_text": "std.do!\n [if (var (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)])) \n (X113 = none) \n (X113 =\n some (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)])), \n log.private.log-vernac\n (log.private.coq.vernac.definition HB_unnamed_factory_27 X113 \n (app\n [global (indc «IsSelfA'.Axioms_»), global (indt «nat»), \n global (indc «O»), fun `x` (global (indt «nat»)) c0 \\ c0])), \n get-option coq:locality local =>\n log.coq.arguments.set-implicit (const «HB_unnamed_factory_27») [[]]]", "goal_id": 1394 } ], @@ -54284,13 +52251,11 @@ "rule": [ "UserRule", { - "rule_text": - "(log.coq.env.add-const-noimplicits-failondup A0 A1 A2 A3 A4) :- (std.do!\n [if\n (\n not\n (ground_term\n A2 ;\n ground_term\n A1)) \n (\n ,\n (coq.term->string\n A2 A6) \n (coq.term->string\n A1 A7) \n (coq.error\n HB: cannot infer some information in \n A0 : A6 \n := A7)) \n true, \n coq.env.add-const\n A0 A1 A2 \n A3 A4, \n log.coq.env.add-location\n (\n const A4), \n if\n (\n var A2) \n (\n A5 = none) \n (\n A5 =\n some A2), \n log.private.log-vernac\n (\n log.private.coq.vernac.definition\n A0 A5 A1), \n get-option\n coq:locality \n local =>\n log.coq.arguments.set-implicit\n (const A4) \n [[]]]).", + "rule_text": "(log.coq.env.add-const-noimplicits-failondup A0 A1 A2 A3 A4) :- (std.do!\n [if\n (\n not\n (ground_term\n A2 ;\n ground_term\n A1)) \n (\n ,\n (coq.term->string\n A2 A6) \n (coq.term->string\n A1 A7) \n (coq.error\n HB: cannot infer some information in \n A0 : A6 \n := A7)) \n true, \n coq.env.add-const\n A0 A1 A2 \n A3 A4, \n log.coq.env.add-location\n (\n const A4), \n if\n (\n var A2) \n (\n A5 = none) \n (\n A5 =\n some A2), \n log.private.log-vernac\n (\n log.private.coq.vernac.definition\n A0 A5 A1), \n get-option\n coq:locality \n local =>\n log.coq.arguments.set-implicit\n (const A4) \n [[]]]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 59, "column": 0, "character": 2355 @@ -54514,13 +52479,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -54539,8 +52502,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -54565,13 +52527,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -54586,8 +52546,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -54619,8 +52578,7 @@ "Inference", { "current_goal_id": 1392, - "current_goal_text": - "log.coq.env.add-location (const «HB_unnamed_factory_27»)", + "current_goal_text": "log.coq.env.add-location (const «HB_unnamed_factory_27»)", "current_goal_predicate": "log.coq.env.add-location", "failed_attempts": [], "successful_attempts": [ @@ -54629,13 +52587,11 @@ "rule": [ "UserRule", { - "rule_text": - "(log.coq.env.add-location A0) :- (if (get-option elpi.loc A1) \n (acc-clause library (decl-location A0 A1)) \n true).", + "rule_text": "(log.coq.env.add-location A0) :- (if (get-option elpi.loc A1) \n (acc-clause library (decl-location A0 A1)) \n true).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 21, "column": 0, "character": 831 @@ -54649,8 +52605,7 @@ }, "siblings": [ { - "goal_text": - "if (get-option elpi.loc X114) \n (acc-clause library (decl-location (const «HB_unnamed_factory_27») X114)) \n true", + "goal_text": "if (get-option elpi.loc X114) \n (acc-clause library (decl-location (const «HB_unnamed_factory_27») X114)) \n true", "goal_id": 1395 } ], @@ -54663,13 +52618,11 @@ "rule": [ "UserRule", { - "rule_text": - "(log.coq.env.add-location A0) :- (if (get-option elpi.loc A1) \n (acc-clause library (decl-location A0 A1)) \n true).", + "rule_text": "(log.coq.env.add-location A0) :- (if (get-option elpi.loc A1) \n (acc-clause library (decl-location A0 A1)) \n true).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 21, "column": 0, "character": 831 @@ -54741,13 +52694,11 @@ "rule": [ "UserRule", { - "rule_text": - "(log.coq.env.add-const-noimplicits-failondup A0 A1 A2 A3 A4) :- (std.do!\n [if\n (\n not\n (ground_term\n A2 ;\n ground_term\n A1)) \n (\n ,\n (coq.term->string\n A2 A6) \n (coq.term->string\n A1 A7) \n (coq.error\n HB: cannot infer some information in \n A0 : A6 \n := A7)) \n true, \n coq.env.add-const\n A0 A1 A2 \n A3 A4, \n log.coq.env.add-location\n (\n const A4), \n if\n (\n var A2) \n (\n A5 = none) \n (\n A5 =\n some A2), \n log.private.log-vernac\n (\n log.private.coq.vernac.definition\n A0 A5 A1), \n get-option\n coq:locality \n local =>\n log.coq.arguments.set-implicit\n (const A4) \n [[]]]).", + "rule_text": "(log.coq.env.add-const-noimplicits-failondup A0 A1 A2 A3 A4) :- (std.do!\n [if\n (\n not\n (ground_term\n A2 ;\n ground_term\n A1)) \n (\n ,\n (coq.term->string\n A2 A6) \n (coq.term->string\n A1 A7) \n (coq.error\n HB: cannot infer some information in \n A0 : A6 \n := A7)) \n true, \n coq.env.add-const\n A0 A1 A2 \n A3 A4, \n log.coq.env.add-location\n (\n const A4), \n if\n (\n var A2) \n (\n A5 = none) \n (\n A5 =\n some A2), \n log.private.log-vernac\n (\n log.private.coq.vernac.definition\n A0 A5 A1), \n get-option\n coq:locality \n local =>\n log.coq.arguments.set-implicit\n (const A4) \n [[]]]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 59, "column": 0, "character": 2355 @@ -54971,13 +52922,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -54996,8 +52945,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -55022,13 +52970,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -55043,8 +52989,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -55076,8 +53021,7 @@ "Inference", { "current_goal_id": 1395, - "current_goal_text": - "if (get-option elpi.loc X114) \n (acc-clause library (decl-location (const «HB_unnamed_factory_27») X114)) \n true", + "current_goal_text": "if (get-option elpi.loc X114) \n (acc-clause library (decl-location (const «HB_unnamed_factory_27») X114)) \n true", "current_goal_predicate": "if", "failed_attempts": [], "successful_attempts": [ @@ -55110,8 +53054,7 @@ { "goal_text": "get-option elpi.loc X114", "goal_id": 1396 }, { "goal_text": "!", "goal_id": 1397 }, { - "goal_text": - "acc-clause library (decl-location (const «HB_unnamed_factory_27») X114)", + "goal_text": "acc-clause library (decl-location (const «HB_unnamed_factory_27») X114)", "goal_id": 1398 } ], @@ -55143,13 +53086,11 @@ "rule": [ "UserRule", { - "rule_text": - "(log.coq.env.add-location A0) :- (if (get-option elpi.loc A1) \n (acc-clause library (decl-location A0 A1)) \n true).", + "rule_text": "(log.coq.env.add-location A0) :- (if (get-option elpi.loc A1) \n (acc-clause library (decl-location A0 A1)) \n true).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 21, "column": 0, "character": 831 @@ -55221,13 +53162,11 @@ "rule": [ "UserRule", { - "rule_text": - "(log.coq.env.add-const-noimplicits-failondup A0 A1 A2 A3 A4) :- (std.do!\n [if\n (\n not\n (ground_term\n A2 ;\n ground_term\n A1)) \n (\n ,\n (coq.term->string\n A2 A6) \n (coq.term->string\n A1 A7) \n (coq.error\n HB: cannot infer some information in \n A0 : A6 \n := A7)) \n true, \n coq.env.add-const\n A0 A1 A2 \n A3 A4, \n log.coq.env.add-location\n (\n const A4), \n if\n (\n var A2) \n (\n A5 = none) \n (\n A5 =\n some A2), \n log.private.log-vernac\n (\n log.private.coq.vernac.definition\n A0 A5 A1), \n get-option\n coq:locality \n local =>\n log.coq.arguments.set-implicit\n (const A4) \n [[]]]).", + "rule_text": "(log.coq.env.add-const-noimplicits-failondup A0 A1 A2 A3 A4) :- (std.do!\n [if\n (\n not\n (ground_term\n A2 ;\n ground_term\n A1)) \n (\n ,\n (coq.term->string\n A2 A6) \n (coq.term->string\n A1 A7) \n (coq.error\n HB: cannot infer some information in \n A0 : A6 \n := A7)) \n true, \n coq.env.add-const\n A0 A1 A2 \n A3 A4, \n log.coq.env.add-location\n (\n const A4), \n if\n (\n var A2) \n (\n A5 = none) \n (\n A5 =\n some A2), \n log.private.log-vernac\n (\n log.private.coq.vernac.definition\n A0 A5 A1), \n get-option\n coq:locality \n local =>\n log.coq.arguments.set-implicit\n (const A4) \n [[]]]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 59, "column": 0, "character": 2355 @@ -55451,13 +53390,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -55476,8 +53413,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -55502,13 +53438,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -55523,8 +53457,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -55565,8 +53498,7 @@ "rule": [ "UserRule", { - "rule_text": - "(get-option elpi.loc File \"(stdin)\", line 1, column 2, character 3:) :- .", + "rule_text": "(get-option elpi.loc File \"(stdin)\", line 1, column 2, character 3:) :- .", "rule_loc": [ "Context", 74 ] } ], @@ -55587,8 +53519,7 @@ "rule": [ "UserRule", { - "rule_text": - "(get-option elpi.loc File \"(stdin)\", line 1, column 2, character 3:) :- .", + "rule_text": "(get-option elpi.loc File \"(stdin)\", line 1, column 2, character 3:) :- .", "rule_loc": [ "Context", 74 ] } ], @@ -55618,13 +53549,11 @@ "rule": [ "UserRule", { - "rule_text": - "(log.coq.env.add-location A0) :- (if (get-option elpi.loc A1) \n (acc-clause library (decl-location A0 A1)) \n true).", + "rule_text": "(log.coq.env.add-location A0) :- (if (get-option elpi.loc A1) \n (acc-clause library (decl-location A0 A1)) \n true).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 21, "column": 0, "character": 831 @@ -55696,13 +53625,11 @@ "rule": [ "UserRule", { - "rule_text": - "(log.coq.env.add-const-noimplicits-failondup A0 A1 A2 A3 A4) :- (std.do!\n [if\n (\n not\n (ground_term\n A2 ;\n ground_term\n A1)) \n (\n ,\n (coq.term->string\n A2 A6) \n (coq.term->string\n A1 A7) \n (coq.error\n HB: cannot infer some information in \n A0 : A6 \n := A7)) \n true, \n coq.env.add-const\n A0 A1 A2 \n A3 A4, \n log.coq.env.add-location\n (\n const A4), \n if\n (\n var A2) \n (\n A5 = none) \n (\n A5 =\n some A2), \n log.private.log-vernac\n (\n log.private.coq.vernac.definition\n A0 A5 A1), \n get-option\n coq:locality \n local =>\n log.coq.arguments.set-implicit\n (const A4) \n [[]]]).", + "rule_text": "(log.coq.env.add-const-noimplicits-failondup A0 A1 A2 A3 A4) :- (std.do!\n [if\n (\n not\n (ground_term\n A2 ;\n ground_term\n A1)) \n (\n ,\n (coq.term->string\n A2 A6) \n (coq.term->string\n A1 A7) \n (coq.error\n HB: cannot infer some information in \n A0 : A6 \n := A7)) \n true, \n coq.env.add-const\n A0 A1 A2 \n A3 A4, \n log.coq.env.add-location\n (\n const A4), \n if\n (\n var A2) \n (\n A5 = none) \n (\n A5 =\n some A2), \n log.private.log-vernac\n (\n log.private.coq.vernac.definition\n A0 A5 A1), \n get-option\n coq:locality \n local =>\n log.coq.arguments.set-implicit\n (const A4) \n [[]]]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 59, "column": 0, "character": 2355 @@ -55926,13 +53853,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -55951,8 +53876,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -55977,13 +53901,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -55998,8 +53920,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -56034,8 +53955,7 @@ "cut_victims": [ { "cut_branch_for_goal": { - "goal_text": - "if (get-option elpi.loc X114) \n (acc-clause library (decl-location (const «HB_unnamed_factory_27») X114)) \n true", + "goal_text": "if (get-option elpi.loc X114) \n (acc-clause library (decl-location (const «HB_unnamed_factory_27») X114)) \n true", "goal_id": 1395 }, "cut_branch": { @@ -56063,8 +53983,7 @@ "Inference", { "current_goal_id": 1398, - "current_goal_text": - "acc-clause library \n (decl-location (const «HB_unnamed_factory_27») \n File \"(stdin)\", line 1, column 2, character 3:)", + "current_goal_text": "acc-clause library \n (decl-location (const «HB_unnamed_factory_27») \n File \"(stdin)\", line 1, column 2, character 3:)", "current_goal_predicate": "acc-clause", "failed_attempts": [], "successful_attempts": [ @@ -56073,13 +53992,11 @@ "rule": [ "UserRule", { - "rule_text": - "(acc-clause A0 A1) :- (coq.elpi.accumulate A0 hb.db (clause _ _ A1)).", + "rule_text": "(acc-clause A0 A1) :- (coq.elpi.accumulate A0 hb.db (clause _ _ A1)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 75, "column": 0, "character": 2237 @@ -56097,8 +54014,7 @@ }, "siblings": [ { - "goal_text": - "coq.elpi.accumulate library hb.db \n (clause _ _ \n (decl-location (const «HB_unnamed_factory_27») \n File \"(stdin)\", line 1, column 2, character 3:))", + "goal_text": "coq.elpi.accumulate library hb.db \n (clause _ _ \n (decl-location (const «HB_unnamed_factory_27») \n File \"(stdin)\", line 1, column 2, character 3:))", "goal_id": 1399 } ], @@ -56111,13 +54027,11 @@ "rule": [ "UserRule", { - "rule_text": - "(acc-clause A0 A1) :- (coq.elpi.accumulate A0 hb.db (clause _ _ A1)).", + "rule_text": "(acc-clause A0 A1) :- (coq.elpi.accumulate A0 hb.db (clause _ _ A1)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 75, "column": 0, "character": 2237 @@ -56151,13 +54065,11 @@ "rule": [ "UserRule", { - "rule_text": - "(log.coq.env.add-location A0) :- (if (get-option elpi.loc A1) \n (acc-clause library (decl-location A0 A1)) \n true).", + "rule_text": "(log.coq.env.add-location A0) :- (if (get-option elpi.loc A1) \n (acc-clause library (decl-location A0 A1)) \n true).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 21, "column": 0, "character": 831 @@ -56229,13 +54141,11 @@ "rule": [ "UserRule", { - "rule_text": - "(log.coq.env.add-const-noimplicits-failondup A0 A1 A2 A3 A4) :- (std.do!\n [if\n (\n not\n (ground_term\n A2 ;\n ground_term\n A1)) \n (\n ,\n (coq.term->string\n A2 A6) \n (coq.term->string\n A1 A7) \n (coq.error\n HB: cannot infer some information in \n A0 : A6 \n := A7)) \n true, \n coq.env.add-const\n A0 A1 A2 \n A3 A4, \n log.coq.env.add-location\n (\n const A4), \n if\n (\n var A2) \n (\n A5 = none) \n (\n A5 =\n some A2), \n log.private.log-vernac\n (\n log.private.coq.vernac.definition\n A0 A5 A1), \n get-option\n coq:locality \n local =>\n log.coq.arguments.set-implicit\n (const A4) \n [[]]]).", + "rule_text": "(log.coq.env.add-const-noimplicits-failondup A0 A1 A2 A3 A4) :- (std.do!\n [if\n (\n not\n (ground_term\n A2 ;\n ground_term\n A1)) \n (\n ,\n (coq.term->string\n A2 A6) \n (coq.term->string\n A1 A7) \n (coq.error\n HB: cannot infer some information in \n A0 : A6 \n := A7)) \n true, \n coq.env.add-const\n A0 A1 A2 \n A3 A4, \n log.coq.env.add-location\n (\n const A4), \n if\n (\n var A2) \n (\n A5 = none) \n (\n A5 =\n some A2), \n log.private.log-vernac\n (\n log.private.coq.vernac.definition\n A0 A5 A1), \n get-option\n coq:locality \n local =>\n log.coq.arguments.set-implicit\n (const A4) \n [[]]]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 59, "column": 0, "character": 2355 @@ -56459,13 +54369,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -56484,8 +54392,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -56510,13 +54417,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -56531,8 +54436,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -56564,8 +54468,7 @@ "Inference", { "current_goal_id": 1399, - "current_goal_text": - "coq.elpi.accumulate library hb.db \n (clause _ _ \n (decl-location (const «HB_unnamed_factory_27») \n File \"(stdin)\", line 1, column 2, character 3:))", + "current_goal_text": "coq.elpi.accumulate library hb.db \n (clause _ _ \n (decl-location (const «HB_unnamed_factory_27») \n File \"(stdin)\", line 1, column 2, character 3:))", "current_goal_predicate": "coq.elpi.accumulate", "failed_attempts": [], "successful_attempts": [ @@ -56589,13 +54492,11 @@ "rule": [ "UserRule", { - "rule_text": - "(acc-clause A0 A1) :- (coq.elpi.accumulate A0 hb.db (clause _ _ A1)).", + "rule_text": "(acc-clause A0 A1) :- (coq.elpi.accumulate A0 hb.db (clause _ _ A1)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 75, "column": 0, "character": 2237 @@ -56629,13 +54530,11 @@ "rule": [ "UserRule", { - "rule_text": - "(log.coq.env.add-location A0) :- (if (get-option elpi.loc A1) \n (acc-clause library (decl-location A0 A1)) \n true).", + "rule_text": "(log.coq.env.add-location A0) :- (if (get-option elpi.loc A1) \n (acc-clause library (decl-location A0 A1)) \n true).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 21, "column": 0, "character": 831 @@ -56707,13 +54606,11 @@ "rule": [ "UserRule", { - "rule_text": - "(log.coq.env.add-const-noimplicits-failondup A0 A1 A2 A3 A4) :- (std.do!\n [if\n (\n not\n (ground_term\n A2 ;\n ground_term\n A1)) \n (\n ,\n (coq.term->string\n A2 A6) \n (coq.term->string\n A1 A7) \n (coq.error\n HB: cannot infer some information in \n A0 : A6 \n := A7)) \n true, \n coq.env.add-const\n A0 A1 A2 \n A3 A4, \n log.coq.env.add-location\n (\n const A4), \n if\n (\n var A2) \n (\n A5 = none) \n (\n A5 =\n some A2), \n log.private.log-vernac\n (\n log.private.coq.vernac.definition\n A0 A5 A1), \n get-option\n coq:locality \n local =>\n log.coq.arguments.set-implicit\n (const A4) \n [[]]]).", + "rule_text": "(log.coq.env.add-const-noimplicits-failondup A0 A1 A2 A3 A4) :- (std.do!\n [if\n (\n not\n (ground_term\n A2 ;\n ground_term\n A1)) \n (\n ,\n (coq.term->string\n A2 A6) \n (coq.term->string\n A1 A7) \n (coq.error\n HB: cannot infer some information in \n A0 : A6 \n := A7)) \n true, \n coq.env.add-const\n A0 A1 A2 \n A3 A4, \n log.coq.env.add-location\n (\n const A4), \n if\n (\n var A2) \n (\n A5 = none) \n (\n A5 =\n some A2), \n log.private.log-vernac\n (\n log.private.coq.vernac.definition\n A0 A5 A1), \n get-option\n coq:locality \n local =>\n log.coq.arguments.set-implicit\n (const A4) \n [[]]]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 59, "column": 0, "character": 2355 @@ -56937,13 +54834,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -56962,8 +54857,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -56988,13 +54882,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -57009,8 +54901,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -57048,8 +54939,7 @@ "Inference", { "current_goal_id": 1394, - "current_goal_text": - "std.do!\n [if (var (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)])) \n (X113 = none) \n (X113 =\n some (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)])), \n log.private.log-vernac\n (log.private.coq.vernac.definition HB_unnamed_factory_27 X113 \n (app\n [global (indc «IsSelfA'.Axioms_»), global (indt «nat»), \n global (indc «O»), fun `x` (global (indt «nat»)) c0 \\ c0])), \n get-option coq:locality local =>\n log.coq.arguments.set-implicit (const «HB_unnamed_factory_27») [[]]]", + "current_goal_text": "std.do!\n [if (var (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)])) \n (X113 = none) \n (X113 =\n some (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)])), \n log.private.log-vernac\n (log.private.coq.vernac.definition HB_unnamed_factory_27 X113 \n (app\n [global (indc «IsSelfA'.Axioms_»), global (indt «nat»), \n global (indc «O»), fun `x` (global (indt «nat»)) c0 \\ c0])), \n get-option coq:locality local =>\n log.coq.arguments.set-implicit (const «HB_unnamed_factory_27») [[]]]", "current_goal_predicate": "std.do!", "failed_attempts": [], "successful_attempts": [ @@ -57058,8 +54948,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", "rule_loc": [ "File", { @@ -57084,14 +54973,12 @@ }, "siblings": [ { - "goal_text": - "if (var (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)])) \n (X113 = none) \n (X113 =\n some (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]))", + "goal_text": "if (var (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)])) \n (X113 = none) \n (X113 =\n some (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]))", "goal_id": 1400 }, { "goal_text": "!", "goal_id": 1401 }, { - "goal_text": - "std.do!\n [log.private.log-vernac\n (log.private.coq.vernac.definition HB_unnamed_factory_27 X113 \n (app\n [global (indc «IsSelfA'.Axioms_»), global (indt «nat»), \n global (indc «O»), fun `x` (global (indt «nat»)) c0 \\ c0])), \n get-option coq:locality local =>\n log.coq.arguments.set-implicit (const «HB_unnamed_factory_27») [[]]]", + "goal_text": "std.do!\n [log.private.log-vernac\n (log.private.coq.vernac.definition HB_unnamed_factory_27 X113 \n (app\n [global (indc «IsSelfA'.Axioms_»), global (indt «nat»), \n global (indc «O»), fun `x` (global (indt «nat»)) c0 \\ c0])), \n get-option coq:locality local =>\n log.coq.arguments.set-implicit (const «HB_unnamed_factory_27») [[]]]", "goal_id": 1402 } ], @@ -57180,13 +55067,11 @@ "rule": [ "UserRule", { - "rule_text": - "(log.coq.env.add-const-noimplicits-failondup A0 A1 A2 A3 A4) :- (std.do!\n [if\n (\n not\n (ground_term\n A2 ;\n ground_term\n A1)) \n (\n ,\n (coq.term->string\n A2 A6) \n (coq.term->string\n A1 A7) \n (coq.error\n HB: cannot infer some information in \n A0 : A6 \n := A7)) \n true, \n coq.env.add-const\n A0 A1 A2 \n A3 A4, \n log.coq.env.add-location\n (\n const A4), \n if\n (\n var A2) \n (\n A5 = none) \n (\n A5 =\n some A2), \n log.private.log-vernac\n (\n log.private.coq.vernac.definition\n A0 A5 A1), \n get-option\n coq:locality \n local =>\n log.coq.arguments.set-implicit\n (const A4) \n [[]]]).", + "rule_text": "(log.coq.env.add-const-noimplicits-failondup A0 A1 A2 A3 A4) :- (std.do!\n [if\n (\n not\n (ground_term\n A2 ;\n ground_term\n A1)) \n (\n ,\n (coq.term->string\n A2 A6) \n (coq.term->string\n A1 A7) \n (coq.error\n HB: cannot infer some information in \n A0 : A6 \n := A7)) \n true, \n coq.env.add-const\n A0 A1 A2 \n A3 A4, \n log.coq.env.add-location\n (\n const A4), \n if\n (\n var A2) \n (\n A5 = none) \n (\n A5 =\n some A2), \n log.private.log-vernac\n (\n log.private.coq.vernac.definition\n A0 A5 A1), \n get-option\n coq:locality \n local =>\n log.coq.arguments.set-implicit\n (const A4) \n [[]]]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 59, "column": 0, "character": 2355 @@ -57410,13 +55295,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -57435,8 +55318,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -57461,13 +55343,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -57482,8 +55362,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -57515,8 +55394,7 @@ "Inference", { "current_goal_id": 1400, - "current_goal_text": - "if (var (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)])) \n (X113 = none) \n (X113 =\n some (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]))", + "current_goal_text": "if (var (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)])) \n (X113 = none) \n (X113 =\n some (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]))", "current_goal_predicate": "if", "failed_attempts": [], "successful_attempts": [ @@ -57547,8 +55425,7 @@ }, "siblings": [ { - "goal_text": - "var (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)])", + "goal_text": "var (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)])", "goal_id": 1403 }, { "goal_text": "!", "goal_id": 1404 }, @@ -57658,13 +55535,11 @@ "rule": [ "UserRule", { - "rule_text": - "(log.coq.env.add-const-noimplicits-failondup A0 A1 A2 A3 A4) :- (std.do!\n [if\n (\n not\n (ground_term\n A2 ;\n ground_term\n A1)) \n (\n ,\n (coq.term->string\n A2 A6) \n (coq.term->string\n A1 A7) \n (coq.error\n HB: cannot infer some information in \n A0 : A6 \n := A7)) \n true, \n coq.env.add-const\n A0 A1 A2 \n A3 A4, \n log.coq.env.add-location\n (\n const A4), \n if\n (\n var A2) \n (\n A5 = none) \n (\n A5 =\n some A2), \n log.private.log-vernac\n (\n log.private.coq.vernac.definition\n A0 A5 A1), \n get-option\n coq:locality \n local =>\n log.coq.arguments.set-implicit\n (const A4) \n [[]]]).", + "rule_text": "(log.coq.env.add-const-noimplicits-failondup A0 A1 A2 A3 A4) :- (std.do!\n [if\n (\n not\n (ground_term\n A2 ;\n ground_term\n A1)) \n (\n ,\n (coq.term->string\n A2 A6) \n (coq.term->string\n A1 A7) \n (coq.error\n HB: cannot infer some information in \n A0 : A6 \n := A7)) \n true, \n coq.env.add-const\n A0 A1 A2 \n A3 A4, \n log.coq.env.add-location\n (\n const A4), \n if\n (\n var A2) \n (\n A5 = none) \n (\n A5 =\n some A2), \n log.private.log-vernac\n (\n log.private.coq.vernac.definition\n A0 A5 A1), \n get-option\n coq:locality \n local =>\n log.coq.arguments.set-implicit\n (const A4) \n [[]]]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 59, "column": 0, "character": 2355 @@ -57888,13 +55763,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -57913,8 +55786,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -57939,13 +55811,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -57960,8 +55830,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -57993,8 +55862,7 @@ "Inference", { "current_goal_id": 1403, - "current_goal_text": - "var (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)])", + "current_goal_text": "var (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)])", "current_goal_predicate": "var", "failed_attempts": [ { "rule": [ "BuiltinRule", [ "FFI", "var" ] ], "events": [] } @@ -58106,13 +55974,11 @@ "rule": [ "UserRule", { - "rule_text": - "(log.coq.env.add-const-noimplicits-failondup A0 A1 A2 A3 A4) :- (std.do!\n [if\n (\n not\n (ground_term\n A2 ;\n ground_term\n A1)) \n (\n ,\n (coq.term->string\n A2 A6) \n (coq.term->string\n A1 A7) \n (coq.error\n HB: cannot infer some information in \n A0 : A6 \n := A7)) \n true, \n coq.env.add-const\n A0 A1 A2 \n A3 A4, \n log.coq.env.add-location\n (\n const A4), \n if\n (\n var A2) \n (\n A5 = none) \n (\n A5 =\n some A2), \n log.private.log-vernac\n (\n log.private.coq.vernac.definition\n A0 A5 A1), \n get-option\n coq:locality \n local =>\n log.coq.arguments.set-implicit\n (const A4) \n [[]]]).", + "rule_text": "(log.coq.env.add-const-noimplicits-failondup A0 A1 A2 A3 A4) :- (std.do!\n [if\n (\n not\n (ground_term\n A2 ;\n ground_term\n A1)) \n (\n ,\n (coq.term->string\n A2 A6) \n (coq.term->string\n A1 A7) \n (coq.error\n HB: cannot infer some information in \n A0 : A6 \n := A7)) \n true, \n coq.env.add-const\n A0 A1 A2 \n A3 A4, \n log.coq.env.add-location\n (\n const A4), \n if\n (\n var A2) \n (\n A5 = none) \n (\n A5 =\n some A2), \n log.private.log-vernac\n (\n log.private.coq.vernac.definition\n A0 A5 A1), \n get-option\n coq:locality \n local =>\n log.coq.arguments.set-implicit\n (const A4) \n [[]]]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 59, "column": 0, "character": 2355 @@ -58336,13 +56202,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -58361,8 +56225,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -58387,13 +56250,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -58408,8 +56269,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -58441,8 +56301,7 @@ "Inference", { "current_goal_id": 1400, - "current_goal_text": - "if (var (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)])) \n (X113 = none) \n (X113 =\n some (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]))", + "current_goal_text": "if (var (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)])) \n (X113 = none) \n (X113 =\n some (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]))", "current_goal_predicate": "if", "failed_attempts": [], "successful_attempts": [ @@ -58472,8 +56331,7 @@ }, "siblings": [ { - "goal_text": - "X113 = some (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)])", + "goal_text": "X113 = some (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)])", "goal_id": 1406 } ], @@ -58581,13 +56439,11 @@ "rule": [ "UserRule", { - "rule_text": - "(log.coq.env.add-const-noimplicits-failondup A0 A1 A2 A3 A4) :- (std.do!\n [if\n (\n not\n (ground_term\n A2 ;\n ground_term\n A1)) \n (\n ,\n (coq.term->string\n A2 A6) \n (coq.term->string\n A1 A7) \n (coq.error\n HB: cannot infer some information in \n A0 : A6 \n := A7)) \n true, \n coq.env.add-const\n A0 A1 A2 \n A3 A4, \n log.coq.env.add-location\n (\n const A4), \n if\n (\n var A2) \n (\n A5 = none) \n (\n A5 =\n some A2), \n log.private.log-vernac\n (\n log.private.coq.vernac.definition\n A0 A5 A1), \n get-option\n coq:locality \n local =>\n log.coq.arguments.set-implicit\n (const A4) \n [[]]]).", + "rule_text": "(log.coq.env.add-const-noimplicits-failondup A0 A1 A2 A3 A4) :- (std.do!\n [if\n (\n not\n (ground_term\n A2 ;\n ground_term\n A1)) \n (\n ,\n (coq.term->string\n A2 A6) \n (coq.term->string\n A1 A7) \n (coq.error\n HB: cannot infer some information in \n A0 : A6 \n := A7)) \n true, \n coq.env.add-const\n A0 A1 A2 \n A3 A4, \n log.coq.env.add-location\n (\n const A4), \n if\n (\n var A2) \n (\n A5 = none) \n (\n A5 =\n some A2), \n log.private.log-vernac\n (\n log.private.coq.vernac.definition\n A0 A5 A1), \n get-option\n coq:locality \n local =>\n log.coq.arguments.set-implicit\n (const A4) \n [[]]]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 59, "column": 0, "character": 2355 @@ -58811,13 +56667,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -58836,8 +56690,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -58862,13 +56715,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -58883,8 +56734,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -58916,8 +56766,7 @@ "Inference", { "current_goal_id": 1406, - "current_goal_text": - "X113 = some (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)])", + "current_goal_text": "X113 = some (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)])", "current_goal_predicate": "=", "failed_attempts": [], "successful_attempts": [ @@ -59041,13 +56890,11 @@ "rule": [ "UserRule", { - "rule_text": - "(log.coq.env.add-const-noimplicits-failondup A0 A1 A2 A3 A4) :- (std.do!\n [if\n (\n not\n (ground_term\n A2 ;\n ground_term\n A1)) \n (\n ,\n (coq.term->string\n A2 A6) \n (coq.term->string\n A1 A7) \n (coq.error\n HB: cannot infer some information in \n A0 : A6 \n := A7)) \n true, \n coq.env.add-const\n A0 A1 A2 \n A3 A4, \n log.coq.env.add-location\n (\n const A4), \n if\n (\n var A2) \n (\n A5 = none) \n (\n A5 =\n some A2), \n log.private.log-vernac\n (\n log.private.coq.vernac.definition\n A0 A5 A1), \n get-option\n coq:locality \n local =>\n log.coq.arguments.set-implicit\n (const A4) \n [[]]]).", + "rule_text": "(log.coq.env.add-const-noimplicits-failondup A0 A1 A2 A3 A4) :- (std.do!\n [if\n (\n not\n (ground_term\n A2 ;\n ground_term\n A1)) \n (\n ,\n (coq.term->string\n A2 A6) \n (coq.term->string\n A1 A7) \n (coq.error\n HB: cannot infer some information in \n A0 : A6 \n := A7)) \n true, \n coq.env.add-const\n A0 A1 A2 \n A3 A4, \n log.coq.env.add-location\n (\n const A4), \n if\n (\n var A2) \n (\n A5 = none) \n (\n A5 =\n some A2), \n log.private.log-vernac\n (\n log.private.coq.vernac.definition\n A0 A5 A1), \n get-option\n coq:locality \n local =>\n log.coq.arguments.set-implicit\n (const A4) \n [[]]]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 59, "column": 0, "character": 2355 @@ -59271,13 +57118,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -59296,8 +57141,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -59322,13 +57166,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -59343,8 +57185,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -59382,8 +57223,7 @@ "Inference", { "current_goal_id": 1402, - "current_goal_text": - "std.do!\n [log.private.log-vernac\n (log.private.coq.vernac.definition HB_unnamed_factory_27 \n (some (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)])) \n (app\n [global (indc «IsSelfA'.Axioms_»), global (indt «nat»), \n global (indc «O»), fun `x` (global (indt «nat»)) c0 \\ c0])), \n get-option coq:locality local =>\n log.coq.arguments.set-implicit (const «HB_unnamed_factory_27») [[]]]", + "current_goal_text": "std.do!\n [log.private.log-vernac\n (log.private.coq.vernac.definition HB_unnamed_factory_27 \n (some (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)])) \n (app\n [global (indc «IsSelfA'.Axioms_»), global (indt «nat»), \n global (indc «O»), fun `x` (global (indt «nat»)) c0 \\ c0])), \n get-option coq:locality local =>\n log.coq.arguments.set-implicit (const «HB_unnamed_factory_27») [[]]]", "current_goal_predicate": "std.do!", "failed_attempts": [], "successful_attempts": [ @@ -59392,8 +57232,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", "rule_loc": [ "File", { @@ -59418,14 +57257,12 @@ }, "siblings": [ { - "goal_text": - "log.private.log-vernac\n (log.private.coq.vernac.definition HB_unnamed_factory_27 \n (some (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)])) \n (app\n [global (indc «IsSelfA'.Axioms_»), global (indt «nat»), \n global (indc «O»), fun `x` (global (indt «nat»)) c0 \\ c0]))", + "goal_text": "log.private.log-vernac\n (log.private.coq.vernac.definition HB_unnamed_factory_27 \n (some (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)])) \n (app\n [global (indc «IsSelfA'.Axioms_»), global (indt «nat»), \n global (indc «O»), fun `x` (global (indt «nat»)) c0 \\ c0]))", "goal_id": 1407 }, { "goal_text": "!", "goal_id": 1408 }, { - "goal_text": - "std.do!\n [get-option coq:locality local =>\n log.coq.arguments.set-implicit (const «HB_unnamed_factory_27») [[]]]", + "goal_text": "std.do!\n [get-option coq:locality local =>\n log.coq.arguments.set-implicit (const «HB_unnamed_factory_27») [[]]]", "goal_id": 1409 } ], @@ -59533,13 +57370,11 @@ "rule": [ "UserRule", { - "rule_text": - "(log.coq.env.add-const-noimplicits-failondup A0 A1 A2 A3 A4) :- (std.do!\n [if\n (\n not\n (ground_term\n A2 ;\n ground_term\n A1)) \n (\n ,\n (coq.term->string\n A2 A6) \n (coq.term->string\n A1 A7) \n (coq.error\n HB: cannot infer some information in \n A0 : A6 \n := A7)) \n true, \n coq.env.add-const\n A0 A1 A2 \n A3 A4, \n log.coq.env.add-location\n (\n const A4), \n if\n (\n var A2) \n (\n A5 = none) \n (\n A5 =\n some A2), \n log.private.log-vernac\n (\n log.private.coq.vernac.definition\n A0 A5 A1), \n get-option\n coq:locality \n local =>\n log.coq.arguments.set-implicit\n (const A4) \n [[]]]).", + "rule_text": "(log.coq.env.add-const-noimplicits-failondup A0 A1 A2 A3 A4) :- (std.do!\n [if\n (\n not\n (ground_term\n A2 ;\n ground_term\n A1)) \n (\n ,\n (coq.term->string\n A2 A6) \n (coq.term->string\n A1 A7) \n (coq.error\n HB: cannot infer some information in \n A0 : A6 \n := A7)) \n true, \n coq.env.add-const\n A0 A1 A2 \n A3 A4, \n log.coq.env.add-location\n (\n const A4), \n if\n (\n var A2) \n (\n A5 = none) \n (\n A5 =\n some A2), \n log.private.log-vernac\n (\n log.private.coq.vernac.definition\n A0 A5 A1), \n get-option\n coq:locality \n local =>\n log.coq.arguments.set-implicit\n (const A4) \n [[]]]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 59, "column": 0, "character": 2355 @@ -59763,13 +57598,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -59788,8 +57621,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -59814,13 +57646,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -59835,8 +57665,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -59868,8 +57697,7 @@ "Inference", { "current_goal_id": 1407, - "current_goal_text": - "log.private.log-vernac\n (log.private.coq.vernac.definition HB_unnamed_factory_27 \n (some (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)])) \n (app\n [global (indc «IsSelfA'.Axioms_»), global (indt «nat»), \n global (indc «O»), fun `x` (global (indt «nat»)) c0 \\ c0]))", + "current_goal_text": "log.private.log-vernac\n (log.private.coq.vernac.definition HB_unnamed_factory_27 \n (some (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)])) \n (app\n [global (indc «IsSelfA'.Axioms_»), global (indt «nat»), \n global (indc «O»), fun `x` (global (indt «nat»)) c0 \\ c0]))", "current_goal_predicate": "log.private.log-vernac", "failed_attempts": [], "successful_attempts": [ @@ -59878,13 +57706,11 @@ "rule": [ "UserRule", { - "rule_text": - "(log.private.log-vernac A0) :- (log.private.logger A1 A2), (!), \n (if (A2 = tt) (A3 = []) (A3 = [get-option coq:pp all])), \n (A3 => log.private.coq.vernac->pp [A0] A4), \n (log.private.logger-extend A1 A4).", + "rule_text": "(log.private.log-vernac A0) :- (log.private.logger A1 A2), (!), \n (if (A2 = tt) (A3 = []) (A3 = [get-option coq:pp all])), \n (A3 => log.private.coq.vernac->pp [A0] A4), \n (log.private.logger-extend A1 A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 291, "column": 0, "character": 11441 @@ -59906,13 +57732,11 @@ }, { "goal_text": "!", "goal_id": 1411 }, { - "goal_text": - "if (X116 = tt) (X117 = []) (X117 = [get-option coq:pp all])", + "goal_text": "if (X116 = tt) (X117 = []) (X117 = [get-option coq:pp all])", "goal_id": 1412 }, { - "goal_text": - "X117 =>\n log.private.coq.vernac->pp\n [log.private.coq.vernac.definition HB_unnamed_factory_27 \n (some (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)])) \n (app\n [global (indc «IsSelfA'.Axioms_»), global (indt «nat»), \n global (indc «O»), fun `x` (global (indt «nat»)) c0 \\ c0])] X118", + "goal_text": "X117 =>\n log.private.coq.vernac->pp\n [log.private.coq.vernac.definition HB_unnamed_factory_27 \n (some (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)])) \n (app\n [global (indc «IsSelfA'.Axioms_»), global (indt «nat»), \n global (indc «O»), fun `x` (global (indt «nat»)) c0 \\ c0])] X118", "goal_id": 1413 }, { @@ -59929,13 +57753,11 @@ "rule": [ "UserRule", { - "rule_text": - "(log.private.log-vernac A0) :- (log.private.logger A1 A2), (!), \n (if (A2 = tt) (A3 = []) (A3 = [get-option coq:pp all])), \n (A3 => log.private.coq.vernac->pp [A0] A4), \n (log.private.logger-extend A1 A4).", + "rule_text": "(log.private.log-vernac A0) :- (log.private.logger A1 A2), (!), \n (if (A2 = tt) (A3 = []) (A3 = [get-option coq:pp all])), \n (A3 => log.private.coq.vernac->pp [A0] A4), \n (log.private.logger-extend A1 A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 291, "column": 0, "character": 11441 @@ -60045,13 +57867,11 @@ "rule": [ "UserRule", { - "rule_text": - "(log.coq.env.add-const-noimplicits-failondup A0 A1 A2 A3 A4) :- (std.do!\n [if\n (\n not\n (ground_term\n A2 ;\n ground_term\n A1)) \n (\n ,\n (coq.term->string\n A2 A6) \n (coq.term->string\n A1 A7) \n (coq.error\n HB: cannot infer some information in \n A0 : A6 \n := A7)) \n true, \n coq.env.add-const\n A0 A1 A2 \n A3 A4, \n log.coq.env.add-location\n (\n const A4), \n if\n (\n var A2) \n (\n A5 = none) \n (\n A5 =\n some A2), \n log.private.log-vernac\n (\n log.private.coq.vernac.definition\n A0 A5 A1), \n get-option\n coq:locality \n local =>\n log.coq.arguments.set-implicit\n (const A4) \n [[]]]).", + "rule_text": "(log.coq.env.add-const-noimplicits-failondup A0 A1 A2 A3 A4) :- (std.do!\n [if\n (\n not\n (ground_term\n A2 ;\n ground_term\n A1)) \n (\n ,\n (coq.term->string\n A2 A6) \n (coq.term->string\n A1 A7) \n (coq.error\n HB: cannot infer some information in \n A0 : A6 \n := A7)) \n true, \n coq.env.add-const\n A0 A1 A2 \n A3 A4, \n log.coq.env.add-location\n (\n const A4), \n if\n (\n var A2) \n (\n A5 = none) \n (\n A5 =\n some A2), \n log.private.log-vernac\n (\n log.private.coq.vernac.definition\n A0 A5 A1), \n get-option\n coq:locality \n local =>\n log.coq.arguments.set-implicit\n (const A4) \n [[]]]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 59, "column": 0, "character": 2355 @@ -60275,13 +58095,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -60300,8 +58118,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -60326,13 +58143,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -60347,8 +58162,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -60390,13 +58204,11 @@ "rule": [ "UserRule", { - "rule_text": - "(log.private.log-vernac A0) :- (log.private.logger A1 A2), (!), \n (if (A2 = tt) (A3 = []) (A3 = [get-option coq:pp all])), \n (A3 => log.private.coq.vernac->pp [A0] A4), \n (log.private.logger-extend A1 A4).", + "rule_text": "(log.private.log-vernac A0) :- (log.private.logger A1 A2), (!), \n (if (A2 = tt) (A3 = []) (A3 = [get-option coq:pp all])), \n (A3 => log.private.coq.vernac->pp [A0] A4), \n (log.private.logger-extend A1 A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 291, "column": 0, "character": 11441 @@ -60506,13 +58318,11 @@ "rule": [ "UserRule", { - "rule_text": - "(log.coq.env.add-const-noimplicits-failondup A0 A1 A2 A3 A4) :- (std.do!\n [if\n (\n not\n (ground_term\n A2 ;\n ground_term\n A1)) \n (\n ,\n (coq.term->string\n A2 A6) \n (coq.term->string\n A1 A7) \n (coq.error\n HB: cannot infer some information in \n A0 : A6 \n := A7)) \n true, \n coq.env.add-const\n A0 A1 A2 \n A3 A4, \n log.coq.env.add-location\n (\n const A4), \n if\n (\n var A2) \n (\n A5 = none) \n (\n A5 =\n some A2), \n log.private.log-vernac\n (\n log.private.coq.vernac.definition\n A0 A5 A1), \n get-option\n coq:locality \n local =>\n log.coq.arguments.set-implicit\n (const A4) \n [[]]]).", + "rule_text": "(log.coq.env.add-const-noimplicits-failondup A0 A1 A2 A3 A4) :- (std.do!\n [if\n (\n not\n (ground_term\n A2 ;\n ground_term\n A1)) \n (\n ,\n (coq.term->string\n A2 A6) \n (coq.term->string\n A1 A7) \n (coq.error\n HB: cannot infer some information in \n A0 : A6 \n := A7)) \n true, \n coq.env.add-const\n A0 A1 A2 \n A3 A4, \n log.coq.env.add-location\n (\n const A4), \n if\n (\n var A2) \n (\n A5 = none) \n (\n A5 =\n some A2), \n log.private.log-vernac\n (\n log.private.coq.vernac.definition\n A0 A5 A1), \n get-option\n coq:locality \n local =>\n log.coq.arguments.set-implicit\n (const A4) \n [[]]]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 59, "column": 0, "character": 2355 @@ -60736,13 +58546,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -60761,8 +58569,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -60787,13 +58594,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -60808,8 +58613,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -60841,8 +58645,7 @@ "Inference", { "current_goal_id": 1407, - "current_goal_text": - "log.private.log-vernac\n (log.private.coq.vernac.definition HB_unnamed_factory_27 \n (some (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)])) \n (app\n [global (indc «IsSelfA'.Axioms_»), global (indt «nat»), \n global (indc «O»), fun `x` (global (indt «nat»)) c0 \\ c0]))", + "current_goal_text": "log.private.log-vernac\n (log.private.coq.vernac.definition HB_unnamed_factory_27 \n (some (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)])) \n (app\n [global (indc «IsSelfA'.Axioms_»), global (indt «nat»), \n global (indc «O»), fun `x` (global (indt «nat»)) c0 \\ c0]))", "current_goal_predicate": "log.private.log-vernac", "failed_attempts": [], "successful_attempts": [ @@ -60855,8 +58658,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 294, "column": 0, "character": 11623 @@ -60880,8 +58682,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 294, "column": 0, "character": 11623 @@ -60991,13 +58792,11 @@ "rule": [ "UserRule", { - "rule_text": - "(log.coq.env.add-const-noimplicits-failondup A0 A1 A2 A3 A4) :- (std.do!\n [if\n (\n not\n (ground_term\n A2 ;\n ground_term\n A1)) \n (\n ,\n (coq.term->string\n A2 A6) \n (coq.term->string\n A1 A7) \n (coq.error\n HB: cannot infer some information in \n A0 : A6 \n := A7)) \n true, \n coq.env.add-const\n A0 A1 A2 \n A3 A4, \n log.coq.env.add-location\n (\n const A4), \n if\n (\n var A2) \n (\n A5 = none) \n (\n A5 =\n some A2), \n log.private.log-vernac\n (\n log.private.coq.vernac.definition\n A0 A5 A1), \n get-option\n coq:locality \n local =>\n log.coq.arguments.set-implicit\n (const A4) \n [[]]]).", + "rule_text": "(log.coq.env.add-const-noimplicits-failondup A0 A1 A2 A3 A4) :- (std.do!\n [if\n (\n not\n (ground_term\n A2 ;\n ground_term\n A1)) \n (\n ,\n (coq.term->string\n A2 A6) \n (coq.term->string\n A1 A7) \n (coq.error\n HB: cannot infer some information in \n A0 : A6 \n := A7)) \n true, \n coq.env.add-const\n A0 A1 A2 \n A3 A4, \n log.coq.env.add-location\n (\n const A4), \n if\n (\n var A2) \n (\n A5 = none) \n (\n A5 =\n some A2), \n log.private.log-vernac\n (\n log.private.coq.vernac.definition\n A0 A5 A1), \n get-option\n coq:locality \n local =>\n log.coq.arguments.set-implicit\n (const A4) \n [[]]]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 59, "column": 0, "character": 2355 @@ -61221,13 +59020,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -61246,8 +59043,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -61272,13 +59068,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -61293,8 +59087,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -61332,8 +59125,7 @@ "Inference", { "current_goal_id": 1409, - "current_goal_text": - "std.do!\n [get-option coq:locality local =>\n log.coq.arguments.set-implicit (const «HB_unnamed_factory_27») [[]]]", + "current_goal_text": "std.do!\n [get-option coq:locality local =>\n log.coq.arguments.set-implicit (const «HB_unnamed_factory_27») [[]]]", "current_goal_predicate": "std.do!", "failed_attempts": [], "successful_attempts": [ @@ -61342,8 +59134,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", "rule_loc": [ "File", { @@ -61365,8 +59156,7 @@ }, "siblings": [ { - "goal_text": - "get-option coq:locality local =>\n log.coq.arguments.set-implicit (const «HB_unnamed_factory_27») [[]]", + "goal_text": "get-option coq:locality local =>\n log.coq.arguments.set-implicit (const «HB_unnamed_factory_27») [[]]", "goal_id": 1415 }, { "goal_text": "!", "goal_id": 1416 }, @@ -61495,13 +59285,11 @@ "rule": [ "UserRule", { - "rule_text": - "(log.coq.env.add-const-noimplicits-failondup A0 A1 A2 A3 A4) :- (std.do!\n [if\n (\n not\n (ground_term\n A2 ;\n ground_term\n A1)) \n (\n ,\n (coq.term->string\n A2 A6) \n (coq.term->string\n A1 A7) \n (coq.error\n HB: cannot infer some information in \n A0 : A6 \n := A7)) \n true, \n coq.env.add-const\n A0 A1 A2 \n A3 A4, \n log.coq.env.add-location\n (\n const A4), \n if\n (\n var A2) \n (\n A5 = none) \n (\n A5 =\n some A2), \n log.private.log-vernac\n (\n log.private.coq.vernac.definition\n A0 A5 A1), \n get-option\n coq:locality \n local =>\n log.coq.arguments.set-implicit\n (const A4) \n [[]]]).", + "rule_text": "(log.coq.env.add-const-noimplicits-failondup A0 A1 A2 A3 A4) :- (std.do!\n [if\n (\n not\n (ground_term\n A2 ;\n ground_term\n A1)) \n (\n ,\n (coq.term->string\n A2 A6) \n (coq.term->string\n A1 A7) \n (coq.error\n HB: cannot infer some information in \n A0 : A6 \n := A7)) \n true, \n coq.env.add-const\n A0 A1 A2 \n A3 A4, \n log.coq.env.add-location\n (\n const A4), \n if\n (\n var A2) \n (\n A5 = none) \n (\n A5 =\n some A2), \n log.private.log-vernac\n (\n log.private.coq.vernac.definition\n A0 A5 A1), \n get-option\n coq:locality \n local =>\n log.coq.arguments.set-implicit\n (const A4) \n [[]]]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 59, "column": 0, "character": 2355 @@ -61725,13 +59513,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -61750,8 +59536,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -61776,13 +59561,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -61797,8 +59580,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -61830,8 +59612,7 @@ "Inference", { "current_goal_id": 1415, - "current_goal_text": - "get-option coq:locality local =>\n log.coq.arguments.set-implicit (const «HB_unnamed_factory_27») [[]]", + "current_goal_text": "get-option coq:locality local =>\n log.coq.arguments.set-implicit (const «HB_unnamed_factory_27») [[]]", "current_goal_predicate": "=>", "failed_attempts": [], "successful_attempts": [ @@ -61842,8 +59623,7 @@ }, "siblings": [ { - "goal_text": - "log.coq.arguments.set-implicit (const «HB_unnamed_factory_27») [[]]", + "goal_text": "log.coq.arguments.set-implicit (const «HB_unnamed_factory_27») [[]]", "goal_id": 1418 } ], @@ -61975,13 +59755,11 @@ "rule": [ "UserRule", { - "rule_text": - "(log.coq.env.add-const-noimplicits-failondup A0 A1 A2 A3 A4) :- (std.do!\n [if\n (\n not\n (ground_term\n A2 ;\n ground_term\n A1)) \n (\n ,\n (coq.term->string\n A2 A6) \n (coq.term->string\n A1 A7) \n (coq.error\n HB: cannot infer some information in \n A0 : A6 \n := A7)) \n true, \n coq.env.add-const\n A0 A1 A2 \n A3 A4, \n log.coq.env.add-location\n (\n const A4), \n if\n (\n var A2) \n (\n A5 = none) \n (\n A5 =\n some A2), \n log.private.log-vernac\n (\n log.private.coq.vernac.definition\n A0 A5 A1), \n get-option\n coq:locality \n local =>\n log.coq.arguments.set-implicit\n (const A4) \n [[]]]).", + "rule_text": "(log.coq.env.add-const-noimplicits-failondup A0 A1 A2 A3 A4) :- (std.do!\n [if\n (\n not\n (ground_term\n A2 ;\n ground_term\n A1)) \n (\n ,\n (coq.term->string\n A2 A6) \n (coq.term->string\n A1 A7) \n (coq.error\n HB: cannot infer some information in \n A0 : A6 \n := A7)) \n true, \n coq.env.add-const\n A0 A1 A2 \n A3 A4, \n log.coq.env.add-location\n (\n const A4), \n if\n (\n var A2) \n (\n A5 = none) \n (\n A5 =\n some A2), \n log.private.log-vernac\n (\n log.private.coq.vernac.definition\n A0 A5 A1), \n get-option\n coq:locality \n local =>\n log.coq.arguments.set-implicit\n (const A4) \n [[]]]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 59, "column": 0, "character": 2355 @@ -62205,13 +59983,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -62230,8 +60006,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -62256,13 +60031,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -62277,8 +60050,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -62310,8 +60082,7 @@ "Inference", { "current_goal_id": 1418, - "current_goal_text": - "log.coq.arguments.set-implicit (const «HB_unnamed_factory_27») [[]]", + "current_goal_text": "log.coq.arguments.set-implicit (const «HB_unnamed_factory_27») [[]]", "current_goal_predicate": "log.coq.arguments.set-implicit", "failed_attempts": [], "successful_attempts": [ @@ -62320,13 +60091,11 @@ "rule": [ "UserRule", { - "rule_text": - "(log.coq.arguments.set-implicit A0 A1) :- (std.do!\n [coq.arguments.set-implicit A0 A1, \n if\n (get-option coq:locality local) \n (A2 = tt) (A2 = ff), \n (coq.gref->id A0 A3 ,\n log.private.log-vernac\n (log.private.coq.vernac.implicit\n A2 A3 A1))]).", + "rule_text": "(log.coq.arguments.set-implicit A0 A1) :- (std.do!\n [coq.arguments.set-implicit A0 A1, \n if\n (get-option coq:locality local) \n (A2 = tt) (A2 = ff), \n (coq.gref->id A0 A3 ,\n log.private.log-vernac\n (log.private.coq.vernac.implicit\n A2 A3 A1))]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 14, "column": 0, "character": 592 @@ -62341,8 +60110,7 @@ }, "siblings": [ { - "goal_text": - "std.do!\n [coq.arguments.set-implicit (const «HB_unnamed_factory_27») [[]], \n if (get-option coq:locality local) (X119 = tt) (X119 = ff), \n (coq.gref->id (const «HB_unnamed_factory_27») X120 ,\n log.private.log-vernac (log.private.coq.vernac.implicit X119 X120 [[]]))]", + "goal_text": "std.do!\n [coq.arguments.set-implicit (const «HB_unnamed_factory_27») [[]], \n if (get-option coq:locality local) (X119 = tt) (X119 = ff), \n (coq.gref->id (const «HB_unnamed_factory_27») X120 ,\n log.private.log-vernac (log.private.coq.vernac.implicit X119 X120 [[]]))]", "goal_id": 1419 } ], @@ -62355,13 +60123,11 @@ "rule": [ "UserRule", { - "rule_text": - "(log.coq.arguments.set-implicit A0 A1) :- (std.do!\n [coq.arguments.set-implicit A0 A1, \n if\n (get-option coq:locality local) \n (A2 = tt) (A2 = ff), \n (coq.gref->id A0 A3 ,\n log.private.log-vernac\n (log.private.coq.vernac.implicit\n A2 A3 A1))]).", + "rule_text": "(log.coq.arguments.set-implicit A0 A1) :- (std.do!\n [coq.arguments.set-implicit A0 A1, \n if\n (get-option coq:locality local) \n (A2 = tt) (A2 = ff), \n (coq.gref->id A0 A3 ,\n log.private.log-vernac\n (log.private.coq.vernac.implicit\n A2 A3 A1))]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 14, "column": 0, "character": 592 @@ -62495,13 +60261,11 @@ "rule": [ "UserRule", { - "rule_text": - "(log.coq.env.add-const-noimplicits-failondup A0 A1 A2 A3 A4) :- (std.do!\n [if\n (\n not\n (ground_term\n A2 ;\n ground_term\n A1)) \n (\n ,\n (coq.term->string\n A2 A6) \n (coq.term->string\n A1 A7) \n (coq.error\n HB: cannot infer some information in \n A0 : A6 \n := A7)) \n true, \n coq.env.add-const\n A0 A1 A2 \n A3 A4, \n log.coq.env.add-location\n (\n const A4), \n if\n (\n var A2) \n (\n A5 = none) \n (\n A5 =\n some A2), \n log.private.log-vernac\n (\n log.private.coq.vernac.definition\n A0 A5 A1), \n get-option\n coq:locality \n local =>\n log.coq.arguments.set-implicit\n (const A4) \n [[]]]).", + "rule_text": "(log.coq.env.add-const-noimplicits-failondup A0 A1 A2 A3 A4) :- (std.do!\n [if\n (\n not\n (ground_term\n A2 ;\n ground_term\n A1)) \n (\n ,\n (coq.term->string\n A2 A6) \n (coq.term->string\n A1 A7) \n (coq.error\n HB: cannot infer some information in \n A0 : A6 \n := A7)) \n true, \n coq.env.add-const\n A0 A1 A2 \n A3 A4, \n log.coq.env.add-location\n (\n const A4), \n if\n (\n var A2) \n (\n A5 = none) \n (\n A5 =\n some A2), \n log.private.log-vernac\n (\n log.private.coq.vernac.definition\n A0 A5 A1), \n get-option\n coq:locality \n local =>\n log.coq.arguments.set-implicit\n (const A4) \n [[]]]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 59, "column": 0, "character": 2355 @@ -62725,13 +60489,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -62750,8 +60512,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -62776,13 +60537,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -62797,8 +60556,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -62830,8 +60588,7 @@ "Inference", { "current_goal_id": 1419, - "current_goal_text": - "std.do!\n [coq.arguments.set-implicit (const «HB_unnamed_factory_27») [[]], \n if (get-option coq:locality local) (X119 = tt) (X119 = ff), \n (coq.gref->id (const «HB_unnamed_factory_27») X120 ,\n log.private.log-vernac (log.private.coq.vernac.implicit X119 X120 [[]]))]", + "current_goal_text": "std.do!\n [coq.arguments.set-implicit (const «HB_unnamed_factory_27») [[]], \n if (get-option coq:locality local) (X119 = tt) (X119 = ff), \n (coq.gref->id (const «HB_unnamed_factory_27») X120 ,\n log.private.log-vernac (log.private.coq.vernac.implicit X119 X120 [[]]))]", "current_goal_predicate": "std.do!", "failed_attempts": [], "successful_attempts": [ @@ -62840,8 +60597,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", "rule_loc": [ "File", { @@ -62866,14 +60622,12 @@ }, "siblings": [ { - "goal_text": - "coq.arguments.set-implicit (const «HB_unnamed_factory_27») [[]]", + "goal_text": "coq.arguments.set-implicit (const «HB_unnamed_factory_27») [[]]", "goal_id": 1420 }, { "goal_text": "!", "goal_id": 1421 }, { - "goal_text": - "std.do!\n [if (get-option coq:locality local) (X119 = tt) (X119 = ff), \n (coq.gref->id (const «HB_unnamed_factory_27») X120 ,\n log.private.log-vernac (log.private.coq.vernac.implicit X119 X120 [[]]))]", + "goal_text": "std.do!\n [if (get-option coq:locality local) (X119 = tt) (X119 = ff), \n (coq.gref->id (const «HB_unnamed_factory_27») X120 ,\n log.private.log-vernac (log.private.coq.vernac.implicit X119 X120 [[]]))]", "goal_id": 1422 } ], @@ -62905,13 +60659,11 @@ "rule": [ "UserRule", { - "rule_text": - "(log.coq.arguments.set-implicit A0 A1) :- (std.do!\n [coq.arguments.set-implicit A0 A1, \n if\n (get-option coq:locality local) \n (A2 = tt) (A2 = ff), \n (coq.gref->id A0 A3 ,\n log.private.log-vernac\n (log.private.coq.vernac.implicit\n A2 A3 A1))]).", + "rule_text": "(log.coq.arguments.set-implicit A0 A1) :- (std.do!\n [coq.arguments.set-implicit A0 A1, \n if\n (get-option coq:locality local) \n (A2 = tt) (A2 = ff), \n (coq.gref->id A0 A3 ,\n log.private.log-vernac\n (log.private.coq.vernac.implicit\n A2 A3 A1))]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 14, "column": 0, "character": 592 @@ -63045,13 +60797,11 @@ "rule": [ "UserRule", { - "rule_text": - "(log.coq.env.add-const-noimplicits-failondup A0 A1 A2 A3 A4) :- (std.do!\n [if\n (\n not\n (ground_term\n A2 ;\n ground_term\n A1)) \n (\n ,\n (coq.term->string\n A2 A6) \n (coq.term->string\n A1 A7) \n (coq.error\n HB: cannot infer some information in \n A0 : A6 \n := A7)) \n true, \n coq.env.add-const\n A0 A1 A2 \n A3 A4, \n log.coq.env.add-location\n (\n const A4), \n if\n (\n var A2) \n (\n A5 = none) \n (\n A5 =\n some A2), \n log.private.log-vernac\n (\n log.private.coq.vernac.definition\n A0 A5 A1), \n get-option\n coq:locality \n local =>\n log.coq.arguments.set-implicit\n (const A4) \n [[]]]).", + "rule_text": "(log.coq.env.add-const-noimplicits-failondup A0 A1 A2 A3 A4) :- (std.do!\n [if\n (\n not\n (ground_term\n A2 ;\n ground_term\n A1)) \n (\n ,\n (coq.term->string\n A2 A6) \n (coq.term->string\n A1 A7) \n (coq.error\n HB: cannot infer some information in \n A0 : A6 \n := A7)) \n true, \n coq.env.add-const\n A0 A1 A2 \n A3 A4, \n log.coq.env.add-location\n (\n const A4), \n if\n (\n var A2) \n (\n A5 = none) \n (\n A5 =\n some A2), \n log.private.log-vernac\n (\n log.private.coq.vernac.definition\n A0 A5 A1), \n get-option\n coq:locality \n local =>\n log.coq.arguments.set-implicit\n (const A4) \n [[]]]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 59, "column": 0, "character": 2355 @@ -63275,13 +61025,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -63300,8 +61048,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -63326,13 +61073,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -63347,8 +61092,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -63380,16 +61124,14 @@ "Inference", { "current_goal_id": 1420, - "current_goal_text": - "coq.arguments.set-implicit (const «HB_unnamed_factory_27») [[]]", + "current_goal_text": "coq.arguments.set-implicit (const «HB_unnamed_factory_27») [[]]", "current_goal_predicate": "coq.arguments.set-implicit", "failed_attempts": [], "successful_attempts": [ { "attempt": { "rule": [ - "BuiltinRule", - [ "FFI", "coq.arguments.set-implicit" ] + "BuiltinRule", [ "FFI", "coq.arguments.set-implicit" ] ], "events": [] }, @@ -63401,8 +61143,7 @@ "stack": [ { "rule": [ - "BuiltinRule", - [ "FFI", "coq.arguments.set-implicit" ] + "BuiltinRule", [ "FFI", "coq.arguments.set-implicit" ] ], "step_id": 261, "runtime_id": 8 @@ -63430,13 +61171,11 @@ "rule": [ "UserRule", { - "rule_text": - "(log.coq.arguments.set-implicit A0 A1) :- (std.do!\n [coq.arguments.set-implicit A0 A1, \n if\n (get-option coq:locality local) \n (A2 = tt) (A2 = ff), \n (coq.gref->id A0 A3 ,\n log.private.log-vernac\n (log.private.coq.vernac.implicit\n A2 A3 A1))]).", + "rule_text": "(log.coq.arguments.set-implicit A0 A1) :- (std.do!\n [coq.arguments.set-implicit A0 A1, \n if\n (get-option coq:locality local) \n (A2 = tt) (A2 = ff), \n (coq.gref->id A0 A3 ,\n log.private.log-vernac\n (log.private.coq.vernac.implicit\n A2 A3 A1))]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 14, "column": 0, "character": 592 @@ -63570,13 +61309,11 @@ "rule": [ "UserRule", { - "rule_text": - "(log.coq.env.add-const-noimplicits-failondup A0 A1 A2 A3 A4) :- (std.do!\n [if\n (\n not\n (ground_term\n A2 ;\n ground_term\n A1)) \n (\n ,\n (coq.term->string\n A2 A6) \n (coq.term->string\n A1 A7) \n (coq.error\n HB: cannot infer some information in \n A0 : A6 \n := A7)) \n true, \n coq.env.add-const\n A0 A1 A2 \n A3 A4, \n log.coq.env.add-location\n (\n const A4), \n if\n (\n var A2) \n (\n A5 = none) \n (\n A5 =\n some A2), \n log.private.log-vernac\n (\n log.private.coq.vernac.definition\n A0 A5 A1), \n get-option\n coq:locality \n local =>\n log.coq.arguments.set-implicit\n (const A4) \n [[]]]).", + "rule_text": "(log.coq.env.add-const-noimplicits-failondup A0 A1 A2 A3 A4) :- (std.do!\n [if\n (\n not\n (ground_term\n A2 ;\n ground_term\n A1)) \n (\n ,\n (coq.term->string\n A2 A6) \n (coq.term->string\n A1 A7) \n (coq.error\n HB: cannot infer some information in \n A0 : A6 \n := A7)) \n true, \n coq.env.add-const\n A0 A1 A2 \n A3 A4, \n log.coq.env.add-location\n (\n const A4), \n if\n (\n var A2) \n (\n A5 = none) \n (\n A5 =\n some A2), \n log.private.log-vernac\n (\n log.private.coq.vernac.definition\n A0 A5 A1), \n get-option\n coq:locality \n local =>\n log.coq.arguments.set-implicit\n (const A4) \n [[]]]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 59, "column": 0, "character": 2355 @@ -63800,13 +61537,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -63825,8 +61560,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -63851,13 +61585,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -63872,8 +61604,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -63911,8 +61642,7 @@ "Inference", { "current_goal_id": 1422, - "current_goal_text": - "std.do!\n [if (get-option coq:locality local) (X119 = tt) (X119 = ff), \n (coq.gref->id (const «HB_unnamed_factory_27») X120 ,\n log.private.log-vernac (log.private.coq.vernac.implicit X119 X120 [[]]))]", + "current_goal_text": "std.do!\n [if (get-option coq:locality local) (X119 = tt) (X119 = ff), \n (coq.gref->id (const «HB_unnamed_factory_27») X120 ,\n log.private.log-vernac (log.private.coq.vernac.implicit X119 X120 [[]]))]", "current_goal_predicate": "std.do!", "failed_attempts": [], "successful_attempts": [ @@ -63921,8 +61651,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", "rule_loc": [ "File", { @@ -63947,14 +61676,12 @@ }, "siblings": [ { - "goal_text": - "if (get-option coq:locality local) (X119 = tt) (X119 = ff)", + "goal_text": "if (get-option coq:locality local) (X119 = tt) (X119 = ff)", "goal_id": 1423 }, { "goal_text": "!", "goal_id": 1424 }, { - "goal_text": - "std.do!\n [(coq.gref->id (const «HB_unnamed_factory_27») X120 ,\n log.private.log-vernac (log.private.coq.vernac.implicit X119 X120 [[]]))]", + "goal_text": "std.do!\n [(coq.gref->id (const «HB_unnamed_factory_27») X120 ,\n log.private.log-vernac (log.private.coq.vernac.implicit X119 X120 [[]]))]", "goal_id": 1425 } ], @@ -64005,13 +61732,11 @@ "rule": [ "UserRule", { - "rule_text": - "(log.coq.arguments.set-implicit A0 A1) :- (std.do!\n [coq.arguments.set-implicit A0 A1, \n if\n (get-option coq:locality local) \n (A2 = tt) (A2 = ff), \n (coq.gref->id A0 A3 ,\n log.private.log-vernac\n (log.private.coq.vernac.implicit\n A2 A3 A1))]).", + "rule_text": "(log.coq.arguments.set-implicit A0 A1) :- (std.do!\n [coq.arguments.set-implicit A0 A1, \n if\n (get-option coq:locality local) \n (A2 = tt) (A2 = ff), \n (coq.gref->id A0 A3 ,\n log.private.log-vernac\n (log.private.coq.vernac.implicit\n A2 A3 A1))]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 14, "column": 0, "character": 592 @@ -64145,13 +61870,11 @@ "rule": [ "UserRule", { - "rule_text": - "(log.coq.env.add-const-noimplicits-failondup A0 A1 A2 A3 A4) :- (std.do!\n [if\n (\n not\n (ground_term\n A2 ;\n ground_term\n A1)) \n (\n ,\n (coq.term->string\n A2 A6) \n (coq.term->string\n A1 A7) \n (coq.error\n HB: cannot infer some information in \n A0 : A6 \n := A7)) \n true, \n coq.env.add-const\n A0 A1 A2 \n A3 A4, \n log.coq.env.add-location\n (\n const A4), \n if\n (\n var A2) \n (\n A5 = none) \n (\n A5 =\n some A2), \n log.private.log-vernac\n (\n log.private.coq.vernac.definition\n A0 A5 A1), \n get-option\n coq:locality \n local =>\n log.coq.arguments.set-implicit\n (const A4) \n [[]]]).", + "rule_text": "(log.coq.env.add-const-noimplicits-failondup A0 A1 A2 A3 A4) :- (std.do!\n [if\n (\n not\n (ground_term\n A2 ;\n ground_term\n A1)) \n (\n ,\n (coq.term->string\n A2 A6) \n (coq.term->string\n A1 A7) \n (coq.error\n HB: cannot infer some information in \n A0 : A6 \n := A7)) \n true, \n coq.env.add-const\n A0 A1 A2 \n A3 A4, \n log.coq.env.add-location\n (\n const A4), \n if\n (\n var A2) \n (\n A5 = none) \n (\n A5 =\n some A2), \n log.private.log-vernac\n (\n log.private.coq.vernac.definition\n A0 A5 A1), \n get-option\n coq:locality \n local =>\n log.coq.arguments.set-implicit\n (const A4) \n [[]]]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 59, "column": 0, "character": 2355 @@ -64375,13 +62098,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -64400,8 +62121,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -64426,13 +62146,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -64447,8 +62165,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -64480,8 +62197,7 @@ "Inference", { "current_goal_id": 1423, - "current_goal_text": - "if (get-option coq:locality local) (X119 = tt) (X119 = ff)", + "current_goal_text": "if (get-option coq:locality local) (X119 = tt) (X119 = ff)", "current_goal_predicate": "if", "failed_attempts": [], "successful_attempts": [ @@ -64581,13 +62297,11 @@ "rule": [ "UserRule", { - "rule_text": - "(log.coq.arguments.set-implicit A0 A1) :- (std.do!\n [coq.arguments.set-implicit A0 A1, \n if\n (get-option coq:locality local) \n (A2 = tt) (A2 = ff), \n (coq.gref->id A0 A3 ,\n log.private.log-vernac\n (log.private.coq.vernac.implicit\n A2 A3 A1))]).", + "rule_text": "(log.coq.arguments.set-implicit A0 A1) :- (std.do!\n [coq.arguments.set-implicit A0 A1, \n if\n (get-option coq:locality local) \n (A2 = tt) (A2 = ff), \n (coq.gref->id A0 A3 ,\n log.private.log-vernac\n (log.private.coq.vernac.implicit\n A2 A3 A1))]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 14, "column": 0, "character": 592 @@ -64721,13 +62435,11 @@ "rule": [ "UserRule", { - "rule_text": - "(log.coq.env.add-const-noimplicits-failondup A0 A1 A2 A3 A4) :- (std.do!\n [if\n (\n not\n (ground_term\n A2 ;\n ground_term\n A1)) \n (\n ,\n (coq.term->string\n A2 A6) \n (coq.term->string\n A1 A7) \n (coq.error\n HB: cannot infer some information in \n A0 : A6 \n := A7)) \n true, \n coq.env.add-const\n A0 A1 A2 \n A3 A4, \n log.coq.env.add-location\n (\n const A4), \n if\n (\n var A2) \n (\n A5 = none) \n (\n A5 =\n some A2), \n log.private.log-vernac\n (\n log.private.coq.vernac.definition\n A0 A5 A1), \n get-option\n coq:locality \n local =>\n log.coq.arguments.set-implicit\n (const A4) \n [[]]]).", + "rule_text": "(log.coq.env.add-const-noimplicits-failondup A0 A1 A2 A3 A4) :- (std.do!\n [if\n (\n not\n (ground_term\n A2 ;\n ground_term\n A1)) \n (\n ,\n (coq.term->string\n A2 A6) \n (coq.term->string\n A1 A7) \n (coq.error\n HB: cannot infer some information in \n A0 : A6 \n := A7)) \n true, \n coq.env.add-const\n A0 A1 A2 \n A3 A4, \n log.coq.env.add-location\n (\n const A4), \n if\n (\n var A2) \n (\n A5 = none) \n (\n A5 =\n some A2), \n log.private.log-vernac\n (\n log.private.coq.vernac.definition\n A0 A5 A1), \n get-option\n coq:locality \n local =>\n log.coq.arguments.set-implicit\n (const A4) \n [[]]]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 59, "column": 0, "character": 2355 @@ -64951,13 +62663,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -64976,8 +62686,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -65002,13 +62711,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -65023,8 +62730,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -65149,13 +62855,11 @@ "rule": [ "UserRule", { - "rule_text": - "(log.coq.arguments.set-implicit A0 A1) :- (std.do!\n [coq.arguments.set-implicit A0 A1, \n if\n (get-option coq:locality local) \n (A2 = tt) (A2 = ff), \n (coq.gref->id A0 A3 ,\n log.private.log-vernac\n (log.private.coq.vernac.implicit\n A2 A3 A1))]).", + "rule_text": "(log.coq.arguments.set-implicit A0 A1) :- (std.do!\n [coq.arguments.set-implicit A0 A1, \n if\n (get-option coq:locality local) \n (A2 = tt) (A2 = ff), \n (coq.gref->id A0 A3 ,\n log.private.log-vernac\n (log.private.coq.vernac.implicit\n A2 A3 A1))]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 14, "column": 0, "character": 592 @@ -65289,13 +62993,11 @@ "rule": [ "UserRule", { - "rule_text": - "(log.coq.env.add-const-noimplicits-failondup A0 A1 A2 A3 A4) :- (std.do!\n [if\n (\n not\n (ground_term\n A2 ;\n ground_term\n A1)) \n (\n ,\n (coq.term->string\n A2 A6) \n (coq.term->string\n A1 A7) \n (coq.error\n HB: cannot infer some information in \n A0 : A6 \n := A7)) \n true, \n coq.env.add-const\n A0 A1 A2 \n A3 A4, \n log.coq.env.add-location\n (\n const A4), \n if\n (\n var A2) \n (\n A5 = none) \n (\n A5 =\n some A2), \n log.private.log-vernac\n (\n log.private.coq.vernac.definition\n A0 A5 A1), \n get-option\n coq:locality \n local =>\n log.coq.arguments.set-implicit\n (const A4) \n [[]]]).", + "rule_text": "(log.coq.env.add-const-noimplicits-failondup A0 A1 A2 A3 A4) :- (std.do!\n [if\n (\n not\n (ground_term\n A2 ;\n ground_term\n A1)) \n (\n ,\n (coq.term->string\n A2 A6) \n (coq.term->string\n A1 A7) \n (coq.error\n HB: cannot infer some information in \n A0 : A6 \n := A7)) \n true, \n coq.env.add-const\n A0 A1 A2 \n A3 A4, \n log.coq.env.add-location\n (\n const A4), \n if\n (\n var A2) \n (\n A5 = none) \n (\n A5 =\n some A2), \n log.private.log-vernac\n (\n log.private.coq.vernac.definition\n A0 A5 A1), \n get-option\n coq:locality \n local =>\n log.coq.arguments.set-implicit\n (const A4) \n [[]]]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 59, "column": 0, "character": 2355 @@ -65519,13 +63221,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -65544,8 +63244,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -65570,13 +63269,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -65591,8 +63288,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -65627,8 +63323,7 @@ "cut_victims": [ { "cut_branch_for_goal": { - "goal_text": - "if (get-option coq:locality local) (X119 = tt) (X119 = ff)", + "goal_text": "if (get-option coq:locality local) (X119 = tt) (X119 = ff)", "goal_id": 1423 }, "cut_branch": { @@ -65737,13 +63432,11 @@ "rule": [ "UserRule", { - "rule_text": - "(log.coq.arguments.set-implicit A0 A1) :- (std.do!\n [coq.arguments.set-implicit A0 A1, \n if\n (get-option coq:locality local) \n (A2 = tt) (A2 = ff), \n (coq.gref->id A0 A3 ,\n log.private.log-vernac\n (log.private.coq.vernac.implicit\n A2 A3 A1))]).", + "rule_text": "(log.coq.arguments.set-implicit A0 A1) :- (std.do!\n [coq.arguments.set-implicit A0 A1, \n if\n (get-option coq:locality local) \n (A2 = tt) (A2 = ff), \n (coq.gref->id A0 A3 ,\n log.private.log-vernac\n (log.private.coq.vernac.implicit\n A2 A3 A1))]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 14, "column": 0, "character": 592 @@ -65877,13 +63570,11 @@ "rule": [ "UserRule", { - "rule_text": - "(log.coq.env.add-const-noimplicits-failondup A0 A1 A2 A3 A4) :- (std.do!\n [if\n (\n not\n (ground_term\n A2 ;\n ground_term\n A1)) \n (\n ,\n (coq.term->string\n A2 A6) \n (coq.term->string\n A1 A7) \n (coq.error\n HB: cannot infer some information in \n A0 : A6 \n := A7)) \n true, \n coq.env.add-const\n A0 A1 A2 \n A3 A4, \n log.coq.env.add-location\n (\n const A4), \n if\n (\n var A2) \n (\n A5 = none) \n (\n A5 =\n some A2), \n log.private.log-vernac\n (\n log.private.coq.vernac.definition\n A0 A5 A1), \n get-option\n coq:locality \n local =>\n log.coq.arguments.set-implicit\n (const A4) \n [[]]]).", + "rule_text": "(log.coq.env.add-const-noimplicits-failondup A0 A1 A2 A3 A4) :- (std.do!\n [if\n (\n not\n (ground_term\n A2 ;\n ground_term\n A1)) \n (\n ,\n (coq.term->string\n A2 A6) \n (coq.term->string\n A1 A7) \n (coq.error\n HB: cannot infer some information in \n A0 : A6 \n := A7)) \n true, \n coq.env.add-const\n A0 A1 A2 \n A3 A4, \n log.coq.env.add-location\n (\n const A4), \n if\n (\n var A2) \n (\n A5 = none) \n (\n A5 =\n some A2), \n log.private.log-vernac\n (\n log.private.coq.vernac.definition\n A0 A5 A1), \n get-option\n coq:locality \n local =>\n log.coq.arguments.set-implicit\n (const A4) \n [[]]]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 59, "column": 0, "character": 2355 @@ -66107,13 +63798,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -66132,8 +63821,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -66158,13 +63846,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -66179,8 +63865,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -66218,8 +63903,7 @@ "Inference", { "current_goal_id": 1425, - "current_goal_text": - "std.do!\n [(coq.gref->id (const «HB_unnamed_factory_27») X120 ,\n log.private.log-vernac (log.private.coq.vernac.implicit tt X120 [[]]))]", + "current_goal_text": "std.do!\n [(coq.gref->id (const «HB_unnamed_factory_27») X120 ,\n log.private.log-vernac (log.private.coq.vernac.implicit tt X120 [[]]))]", "current_goal_predicate": "std.do!", "failed_attempts": [], "successful_attempts": [ @@ -66228,8 +63912,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", "rule_loc": [ "File", { @@ -66251,8 +63934,7 @@ }, "siblings": [ { - "goal_text": - "coq.gref->id (const «HB_unnamed_factory_27») X120 ,\n log.private.log-vernac (log.private.coq.vernac.implicit tt X120 [[]])", + "goal_text": "coq.gref->id (const «HB_unnamed_factory_27») X120 ,\n log.private.log-vernac (log.private.coq.vernac.implicit tt X120 [[]])", "goal_id": 1429 }, { "goal_text": "!", "goal_id": 1430 }, @@ -66324,13 +64006,11 @@ "rule": [ "UserRule", { - "rule_text": - "(log.coq.arguments.set-implicit A0 A1) :- (std.do!\n [coq.arguments.set-implicit A0 A1, \n if\n (get-option coq:locality local) \n (A2 = tt) (A2 = ff), \n (coq.gref->id A0 A3 ,\n log.private.log-vernac\n (log.private.coq.vernac.implicit\n A2 A3 A1))]).", + "rule_text": "(log.coq.arguments.set-implicit A0 A1) :- (std.do!\n [coq.arguments.set-implicit A0 A1, \n if\n (get-option coq:locality local) \n (A2 = tt) (A2 = ff), \n (coq.gref->id A0 A3 ,\n log.private.log-vernac\n (log.private.coq.vernac.implicit\n A2 A3 A1))]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 14, "column": 0, "character": 592 @@ -66464,13 +64144,11 @@ "rule": [ "UserRule", { - "rule_text": - "(log.coq.env.add-const-noimplicits-failondup A0 A1 A2 A3 A4) :- (std.do!\n [if\n (\n not\n (ground_term\n A2 ;\n ground_term\n A1)) \n (\n ,\n (coq.term->string\n A2 A6) \n (coq.term->string\n A1 A7) \n (coq.error\n HB: cannot infer some information in \n A0 : A6 \n := A7)) \n true, \n coq.env.add-const\n A0 A1 A2 \n A3 A4, \n log.coq.env.add-location\n (\n const A4), \n if\n (\n var A2) \n (\n A5 = none) \n (\n A5 =\n some A2), \n log.private.log-vernac\n (\n log.private.coq.vernac.definition\n A0 A5 A1), \n get-option\n coq:locality \n local =>\n log.coq.arguments.set-implicit\n (const A4) \n [[]]]).", + "rule_text": "(log.coq.env.add-const-noimplicits-failondup A0 A1 A2 A3 A4) :- (std.do!\n [if\n (\n not\n (ground_term\n A2 ;\n ground_term\n A1)) \n (\n ,\n (coq.term->string\n A2 A6) \n (coq.term->string\n A1 A7) \n (coq.error\n HB: cannot infer some information in \n A0 : A6 \n := A7)) \n true, \n coq.env.add-const\n A0 A1 A2 \n A3 A4, \n log.coq.env.add-location\n (\n const A4), \n if\n (\n var A2) \n (\n A5 = none) \n (\n A5 =\n some A2), \n log.private.log-vernac\n (\n log.private.coq.vernac.definition\n A0 A5 A1), \n get-option\n coq:locality \n local =>\n log.coq.arguments.set-implicit\n (const A4) \n [[]]]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 59, "column": 0, "character": 2355 @@ -66694,13 +64372,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -66719,8 +64395,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -66745,13 +64420,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -66766,8 +64439,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -66799,8 +64471,7 @@ "Inference", { "current_goal_id": 1429, - "current_goal_text": - "coq.gref->id (const «HB_unnamed_factory_27») X120 ,\n log.private.log-vernac (log.private.coq.vernac.implicit tt X120 [[]])", + "current_goal_text": "coq.gref->id (const «HB_unnamed_factory_27») X120 ,\n log.private.log-vernac (log.private.coq.vernac.implicit tt X120 [[]])", "current_goal_predicate": ",", "failed_attempts": [], "successful_attempts": [ @@ -66811,13 +64482,11 @@ }, "siblings": [ { - "goal_text": - "coq.gref->id (const «HB_unnamed_factory_27») X120", + "goal_text": "coq.gref->id (const «HB_unnamed_factory_27») X120", "goal_id": 1432 }, { - "goal_text": - "log.private.log-vernac (log.private.coq.vernac.implicit tt X120 [[]])", + "goal_text": "log.private.log-vernac (log.private.coq.vernac.implicit tt X120 [[]])", "goal_id": 1433 } ], @@ -66892,13 +64561,11 @@ "rule": [ "UserRule", { - "rule_text": - "(log.coq.arguments.set-implicit A0 A1) :- (std.do!\n [coq.arguments.set-implicit A0 A1, \n if\n (get-option coq:locality local) \n (A2 = tt) (A2 = ff), \n (coq.gref->id A0 A3 ,\n log.private.log-vernac\n (log.private.coq.vernac.implicit\n A2 A3 A1))]).", + "rule_text": "(log.coq.arguments.set-implicit A0 A1) :- (std.do!\n [coq.arguments.set-implicit A0 A1, \n if\n (get-option coq:locality local) \n (A2 = tt) (A2 = ff), \n (coq.gref->id A0 A3 ,\n log.private.log-vernac\n (log.private.coq.vernac.implicit\n A2 A3 A1))]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 14, "column": 0, "character": 592 @@ -67032,13 +64699,11 @@ "rule": [ "UserRule", { - "rule_text": - "(log.coq.env.add-const-noimplicits-failondup A0 A1 A2 A3 A4) :- (std.do!\n [if\n (\n not\n (ground_term\n A2 ;\n ground_term\n A1)) \n (\n ,\n (coq.term->string\n A2 A6) \n (coq.term->string\n A1 A7) \n (coq.error\n HB: cannot infer some information in \n A0 : A6 \n := A7)) \n true, \n coq.env.add-const\n A0 A1 A2 \n A3 A4, \n log.coq.env.add-location\n (\n const A4), \n if\n (\n var A2) \n (\n A5 = none) \n (\n A5 =\n some A2), \n log.private.log-vernac\n (\n log.private.coq.vernac.definition\n A0 A5 A1), \n get-option\n coq:locality \n local =>\n log.coq.arguments.set-implicit\n (const A4) \n [[]]]).", + "rule_text": "(log.coq.env.add-const-noimplicits-failondup A0 A1 A2 A3 A4) :- (std.do!\n [if\n (\n not\n (ground_term\n A2 ;\n ground_term\n A1)) \n (\n ,\n (coq.term->string\n A2 A6) \n (coq.term->string\n A1 A7) \n (coq.error\n HB: cannot infer some information in \n A0 : A6 \n := A7)) \n true, \n coq.env.add-const\n A0 A1 A2 \n A3 A4, \n log.coq.env.add-location\n (\n const A4), \n if\n (\n var A2) \n (\n A5 = none) \n (\n A5 =\n some A2), \n log.private.log-vernac\n (\n log.private.coq.vernac.definition\n A0 A5 A1), \n get-option\n coq:locality \n local =>\n log.coq.arguments.set-implicit\n (const A4) \n [[]]]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 59, "column": 0, "character": 2355 @@ -67262,13 +64927,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -67287,8 +64950,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -67313,13 +64975,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -67334,8 +64994,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -67367,8 +65026,7 @@ "Inference", { "current_goal_id": 1432, - "current_goal_text": - "coq.gref->id (const «HB_unnamed_factory_27») X120", + "current_goal_text": "coq.gref->id (const «HB_unnamed_factory_27») X120", "current_goal_predicate": "coq.gref->id", "failed_attempts": [], "successful_attempts": [ @@ -67459,13 +65117,11 @@ "rule": [ "UserRule", { - "rule_text": - "(log.coq.arguments.set-implicit A0 A1) :- (std.do!\n [coq.arguments.set-implicit A0 A1, \n if\n (get-option coq:locality local) \n (A2 = tt) (A2 = ff), \n (coq.gref->id A0 A3 ,\n log.private.log-vernac\n (log.private.coq.vernac.implicit\n A2 A3 A1))]).", + "rule_text": "(log.coq.arguments.set-implicit A0 A1) :- (std.do!\n [coq.arguments.set-implicit A0 A1, \n if\n (get-option coq:locality local) \n (A2 = tt) (A2 = ff), \n (coq.gref->id A0 A3 ,\n log.private.log-vernac\n (log.private.coq.vernac.implicit\n A2 A3 A1))]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 14, "column": 0, "character": 592 @@ -67599,13 +65255,11 @@ "rule": [ "UserRule", { - "rule_text": - "(log.coq.env.add-const-noimplicits-failondup A0 A1 A2 A3 A4) :- (std.do!\n [if\n (\n not\n (ground_term\n A2 ;\n ground_term\n A1)) \n (\n ,\n (coq.term->string\n A2 A6) \n (coq.term->string\n A1 A7) \n (coq.error\n HB: cannot infer some information in \n A0 : A6 \n := A7)) \n true, \n coq.env.add-const\n A0 A1 A2 \n A3 A4, \n log.coq.env.add-location\n (\n const A4), \n if\n (\n var A2) \n (\n A5 = none) \n (\n A5 =\n some A2), \n log.private.log-vernac\n (\n log.private.coq.vernac.definition\n A0 A5 A1), \n get-option\n coq:locality \n local =>\n log.coq.arguments.set-implicit\n (const A4) \n [[]]]).", + "rule_text": "(log.coq.env.add-const-noimplicits-failondup A0 A1 A2 A3 A4) :- (std.do!\n [if\n (\n not\n (ground_term\n A2 ;\n ground_term\n A1)) \n (\n ,\n (coq.term->string\n A2 A6) \n (coq.term->string\n A1 A7) \n (coq.error\n HB: cannot infer some information in \n A0 : A6 \n := A7)) \n true, \n coq.env.add-const\n A0 A1 A2 \n A3 A4, \n log.coq.env.add-location\n (\n const A4), \n if\n (\n var A2) \n (\n A5 = none) \n (\n A5 =\n some A2), \n log.private.log-vernac\n (\n log.private.coq.vernac.definition\n A0 A5 A1), \n get-option\n coq:locality \n local =>\n log.coq.arguments.set-implicit\n (const A4) \n [[]]]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 59, "column": 0, "character": 2355 @@ -67829,13 +65483,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -67854,8 +65506,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -67880,13 +65531,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -67901,8 +65550,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -68025,13 +65673,11 @@ "rule": [ "UserRule", { - "rule_text": - "(log.coq.arguments.set-implicit A0 A1) :- (std.do!\n [coq.arguments.set-implicit A0 A1, \n if\n (get-option coq:locality local) \n (A2 = tt) (A2 = ff), \n (coq.gref->id A0 A3 ,\n log.private.log-vernac\n (log.private.coq.vernac.implicit\n A2 A3 A1))]).", + "rule_text": "(log.coq.arguments.set-implicit A0 A1) :- (std.do!\n [coq.arguments.set-implicit A0 A1, \n if\n (get-option coq:locality local) \n (A2 = tt) (A2 = ff), \n (coq.gref->id A0 A3 ,\n log.private.log-vernac\n (log.private.coq.vernac.implicit\n A2 A3 A1))]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 14, "column": 0, "character": 592 @@ -68165,13 +65811,11 @@ "rule": [ "UserRule", { - "rule_text": - "(log.coq.env.add-const-noimplicits-failondup A0 A1 A2 A3 A4) :- (std.do!\n [if\n (\n not\n (ground_term\n A2 ;\n ground_term\n A1)) \n (\n ,\n (coq.term->string\n A2 A6) \n (coq.term->string\n A1 A7) \n (coq.error\n HB: cannot infer some information in \n A0 : A6 \n := A7)) \n true, \n coq.env.add-const\n A0 A1 A2 \n A3 A4, \n log.coq.env.add-location\n (\n const A4), \n if\n (\n var A2) \n (\n A5 = none) \n (\n A5 =\n some A2), \n log.private.log-vernac\n (\n log.private.coq.vernac.definition\n A0 A5 A1), \n get-option\n coq:locality \n local =>\n log.coq.arguments.set-implicit\n (const A4) \n [[]]]).", + "rule_text": "(log.coq.env.add-const-noimplicits-failondup A0 A1 A2 A3 A4) :- (std.do!\n [if\n (\n not\n (ground_term\n A2 ;\n ground_term\n A1)) \n (\n ,\n (coq.term->string\n A2 A6) \n (coq.term->string\n A1 A7) \n (coq.error\n HB: cannot infer some information in \n A0 : A6 \n := A7)) \n true, \n coq.env.add-const\n A0 A1 A2 \n A3 A4, \n log.coq.env.add-location\n (\n const A4), \n if\n (\n var A2) \n (\n A5 = none) \n (\n A5 =\n some A2), \n log.private.log-vernac\n (\n log.private.coq.vernac.definition\n A0 A5 A1), \n get-option\n coq:locality \n local =>\n log.coq.arguments.set-implicit\n (const A4) \n [[]]]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 59, "column": 0, "character": 2355 @@ -68395,13 +66039,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -68420,8 +66062,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -68446,13 +66087,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -68467,8 +66106,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -68500,8 +66138,7 @@ "Inference", { "current_goal_id": 1433, - "current_goal_text": - "log.private.log-vernac\n (log.private.coq.vernac.implicit tt HB_unnamed_factory_27 [[]])", + "current_goal_text": "log.private.log-vernac\n (log.private.coq.vernac.implicit tt HB_unnamed_factory_27 [[]])", "current_goal_predicate": "log.private.log-vernac", "failed_attempts": [], "successful_attempts": [ @@ -68510,13 +66147,11 @@ "rule": [ "UserRule", { - "rule_text": - "(log.private.log-vernac A0) :- (log.private.logger A1 A2), (!), \n (if (A2 = tt) (A3 = []) (A3 = [get-option coq:pp all])), \n (A3 => log.private.coq.vernac->pp [A0] A4), \n (log.private.logger-extend A1 A4).", + "rule_text": "(log.private.log-vernac A0) :- (log.private.logger A1 A2), (!), \n (if (A2 = tt) (A3 = []) (A3 = [get-option coq:pp all])), \n (A3 => log.private.coq.vernac->pp [A0] A4), \n (log.private.logger-extend A1 A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 291, "column": 0, "character": 11441 @@ -68538,13 +66173,11 @@ }, { "goal_text": "!", "goal_id": 1436 }, { - "goal_text": - "if (X122 = tt) (X123 = []) (X123 = [get-option coq:pp all])", + "goal_text": "if (X122 = tt) (X123 = []) (X123 = [get-option coq:pp all])", "goal_id": 1437 }, { - "goal_text": - "X123 =>\n log.private.coq.vernac->pp\n [log.private.coq.vernac.implicit tt HB_unnamed_factory_27 [[]]] X124", + "goal_text": "X123 =>\n log.private.coq.vernac->pp\n [log.private.coq.vernac.implicit tt HB_unnamed_factory_27 [[]]] X124", "goal_id": 1438 }, { @@ -68561,13 +66194,11 @@ "rule": [ "UserRule", { - "rule_text": - "(log.private.log-vernac A0) :- (log.private.logger A1 A2), (!), \n (if (A2 = tt) (A3 = []) (A3 = [get-option coq:pp all])), \n (A3 => log.private.coq.vernac->pp [A0] A4), \n (log.private.logger-extend A1 A4).", + "rule_text": "(log.private.log-vernac A0) :- (log.private.logger A1 A2), (!), \n (if (A2 = tt) (A3 = []) (A3 = [get-option coq:pp all])), \n (A3 => log.private.coq.vernac->pp [A0] A4), \n (log.private.logger-extend A1 A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 291, "column": 0, "character": 11441 @@ -68644,13 +66275,11 @@ "rule": [ "UserRule", { - "rule_text": - "(log.coq.arguments.set-implicit A0 A1) :- (std.do!\n [coq.arguments.set-implicit A0 A1, \n if\n (get-option coq:locality local) \n (A2 = tt) (A2 = ff), \n (coq.gref->id A0 A3 ,\n log.private.log-vernac\n (log.private.coq.vernac.implicit\n A2 A3 A1))]).", + "rule_text": "(log.coq.arguments.set-implicit A0 A1) :- (std.do!\n [coq.arguments.set-implicit A0 A1, \n if\n (get-option coq:locality local) \n (A2 = tt) (A2 = ff), \n (coq.gref->id A0 A3 ,\n log.private.log-vernac\n (log.private.coq.vernac.implicit\n A2 A3 A1))]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 14, "column": 0, "character": 592 @@ -68784,13 +66413,11 @@ "rule": [ "UserRule", { - "rule_text": - "(log.coq.env.add-const-noimplicits-failondup A0 A1 A2 A3 A4) :- (std.do!\n [if\n (\n not\n (ground_term\n A2 ;\n ground_term\n A1)) \n (\n ,\n (coq.term->string\n A2 A6) \n (coq.term->string\n A1 A7) \n (coq.error\n HB: cannot infer some information in \n A0 : A6 \n := A7)) \n true, \n coq.env.add-const\n A0 A1 A2 \n A3 A4, \n log.coq.env.add-location\n (\n const A4), \n if\n (\n var A2) \n (\n A5 = none) \n (\n A5 =\n some A2), \n log.private.log-vernac\n (\n log.private.coq.vernac.definition\n A0 A5 A1), \n get-option\n coq:locality \n local =>\n log.coq.arguments.set-implicit\n (const A4) \n [[]]]).", + "rule_text": "(log.coq.env.add-const-noimplicits-failondup A0 A1 A2 A3 A4) :- (std.do!\n [if\n (\n not\n (ground_term\n A2 ;\n ground_term\n A1)) \n (\n ,\n (coq.term->string\n A2 A6) \n (coq.term->string\n A1 A7) \n (coq.error\n HB: cannot infer some information in \n A0 : A6 \n := A7)) \n true, \n coq.env.add-const\n A0 A1 A2 \n A3 A4, \n log.coq.env.add-location\n (\n const A4), \n if\n (\n var A2) \n (\n A5 = none) \n (\n A5 =\n some A2), \n log.private.log-vernac\n (\n log.private.coq.vernac.definition\n A0 A5 A1), \n get-option\n coq:locality \n local =>\n log.coq.arguments.set-implicit\n (const A4) \n [[]]]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 59, "column": 0, "character": 2355 @@ -69014,13 +66641,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -69039,8 +66664,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -69065,13 +66689,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -69086,8 +66708,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -69129,13 +66750,11 @@ "rule": [ "UserRule", { - "rule_text": - "(log.private.log-vernac A0) :- (log.private.logger A1 A2), (!), \n (if (A2 = tt) (A3 = []) (A3 = [get-option coq:pp all])), \n (A3 => log.private.coq.vernac->pp [A0] A4), \n (log.private.logger-extend A1 A4).", + "rule_text": "(log.private.log-vernac A0) :- (log.private.logger A1 A2), (!), \n (if (A2 = tt) (A3 = []) (A3 = [get-option coq:pp all])), \n (A3 => log.private.coq.vernac->pp [A0] A4), \n (log.private.logger-extend A1 A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 291, "column": 0, "character": 11441 @@ -69212,13 +66831,11 @@ "rule": [ "UserRule", { - "rule_text": - "(log.coq.arguments.set-implicit A0 A1) :- (std.do!\n [coq.arguments.set-implicit A0 A1, \n if\n (get-option coq:locality local) \n (A2 = tt) (A2 = ff), \n (coq.gref->id A0 A3 ,\n log.private.log-vernac\n (log.private.coq.vernac.implicit\n A2 A3 A1))]).", + "rule_text": "(log.coq.arguments.set-implicit A0 A1) :- (std.do!\n [coq.arguments.set-implicit A0 A1, \n if\n (get-option coq:locality local) \n (A2 = tt) (A2 = ff), \n (coq.gref->id A0 A3 ,\n log.private.log-vernac\n (log.private.coq.vernac.implicit\n A2 A3 A1))]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 14, "column": 0, "character": 592 @@ -69352,13 +66969,11 @@ "rule": [ "UserRule", { - "rule_text": - "(log.coq.env.add-const-noimplicits-failondup A0 A1 A2 A3 A4) :- (std.do!\n [if\n (\n not\n (ground_term\n A2 ;\n ground_term\n A1)) \n (\n ,\n (coq.term->string\n A2 A6) \n (coq.term->string\n A1 A7) \n (coq.error\n HB: cannot infer some information in \n A0 : A6 \n := A7)) \n true, \n coq.env.add-const\n A0 A1 A2 \n A3 A4, \n log.coq.env.add-location\n (\n const A4), \n if\n (\n var A2) \n (\n A5 = none) \n (\n A5 =\n some A2), \n log.private.log-vernac\n (\n log.private.coq.vernac.definition\n A0 A5 A1), \n get-option\n coq:locality \n local =>\n log.coq.arguments.set-implicit\n (const A4) \n [[]]]).", + "rule_text": "(log.coq.env.add-const-noimplicits-failondup A0 A1 A2 A3 A4) :- (std.do!\n [if\n (\n not\n (ground_term\n A2 ;\n ground_term\n A1)) \n (\n ,\n (coq.term->string\n A2 A6) \n (coq.term->string\n A1 A7) \n (coq.error\n HB: cannot infer some information in \n A0 : A6 \n := A7)) \n true, \n coq.env.add-const\n A0 A1 A2 \n A3 A4, \n log.coq.env.add-location\n (\n const A4), \n if\n (\n var A2) \n (\n A5 = none) \n (\n A5 =\n some A2), \n log.private.log-vernac\n (\n log.private.coq.vernac.definition\n A0 A5 A1), \n get-option\n coq:locality \n local =>\n log.coq.arguments.set-implicit\n (const A4) \n [[]]]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 59, "column": 0, "character": 2355 @@ -69582,13 +67197,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -69607,8 +67220,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -69633,13 +67245,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -69654,8 +67264,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -69687,8 +67296,7 @@ "Inference", { "current_goal_id": 1433, - "current_goal_text": - "log.private.log-vernac\n (log.private.coq.vernac.implicit tt HB_unnamed_factory_27 [[]])", + "current_goal_text": "log.private.log-vernac\n (log.private.coq.vernac.implicit tt HB_unnamed_factory_27 [[]])", "current_goal_predicate": "log.private.log-vernac", "failed_attempts": [], "successful_attempts": [ @@ -69701,8 +67309,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 294, "column": 0, "character": 11623 @@ -69726,8 +67333,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 294, "column": 0, "character": 11623 @@ -69804,13 +67410,11 @@ "rule": [ "UserRule", { - "rule_text": - "(log.coq.arguments.set-implicit A0 A1) :- (std.do!\n [coq.arguments.set-implicit A0 A1, \n if\n (get-option coq:locality local) \n (A2 = tt) (A2 = ff), \n (coq.gref->id A0 A3 ,\n log.private.log-vernac\n (log.private.coq.vernac.implicit\n A2 A3 A1))]).", + "rule_text": "(log.coq.arguments.set-implicit A0 A1) :- (std.do!\n [coq.arguments.set-implicit A0 A1, \n if\n (get-option coq:locality local) \n (A2 = tt) (A2 = ff), \n (coq.gref->id A0 A3 ,\n log.private.log-vernac\n (log.private.coq.vernac.implicit\n A2 A3 A1))]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 14, "column": 0, "character": 592 @@ -69944,13 +67548,11 @@ "rule": [ "UserRule", { - "rule_text": - "(log.coq.env.add-const-noimplicits-failondup A0 A1 A2 A3 A4) :- (std.do!\n [if\n (\n not\n (ground_term\n A2 ;\n ground_term\n A1)) \n (\n ,\n (coq.term->string\n A2 A6) \n (coq.term->string\n A1 A7) \n (coq.error\n HB: cannot infer some information in \n A0 : A6 \n := A7)) \n true, \n coq.env.add-const\n A0 A1 A2 \n A3 A4, \n log.coq.env.add-location\n (\n const A4), \n if\n (\n var A2) \n (\n A5 = none) \n (\n A5 =\n some A2), \n log.private.log-vernac\n (\n log.private.coq.vernac.definition\n A0 A5 A1), \n get-option\n coq:locality \n local =>\n log.coq.arguments.set-implicit\n (const A4) \n [[]]]).", + "rule_text": "(log.coq.env.add-const-noimplicits-failondup A0 A1 A2 A3 A4) :- (std.do!\n [if\n (\n not\n (ground_term\n A2 ;\n ground_term\n A1)) \n (\n ,\n (coq.term->string\n A2 A6) \n (coq.term->string\n A1 A7) \n (coq.error\n HB: cannot infer some information in \n A0 : A6 \n := A7)) \n true, \n coq.env.add-const\n A0 A1 A2 \n A3 A4, \n log.coq.env.add-location\n (\n const A4), \n if\n (\n var A2) \n (\n A5 = none) \n (\n A5 =\n some A2), \n log.private.log-vernac\n (\n log.private.coq.vernac.definition\n A0 A5 A1), \n get-option\n coq:locality \n local =>\n log.coq.arguments.set-implicit\n (const A4) \n [[]]]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 59, "column": 0, "character": 2355 @@ -70174,13 +67776,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -70199,8 +67799,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -70225,13 +67824,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -70246,8 +67843,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -70394,13 +67990,11 @@ "rule": [ "UserRule", { - "rule_text": - "(log.coq.arguments.set-implicit A0 A1) :- (std.do!\n [coq.arguments.set-implicit A0 A1, \n if\n (get-option coq:locality local) \n (A2 = tt) (A2 = ff), \n (coq.gref->id A0 A3 ,\n log.private.log-vernac\n (log.private.coq.vernac.implicit\n A2 A3 A1))]).", + "rule_text": "(log.coq.arguments.set-implicit A0 A1) :- (std.do!\n [coq.arguments.set-implicit A0 A1, \n if\n (get-option coq:locality local) \n (A2 = tt) (A2 = ff), \n (coq.gref->id A0 A3 ,\n log.private.log-vernac\n (log.private.coq.vernac.implicit\n A2 A3 A1))]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 14, "column": 0, "character": 592 @@ -70534,13 +68128,11 @@ "rule": [ "UserRule", { - "rule_text": - "(log.coq.env.add-const-noimplicits-failondup A0 A1 A2 A3 A4) :- (std.do!\n [if\n (\n not\n (ground_term\n A2 ;\n ground_term\n A1)) \n (\n ,\n (coq.term->string\n A2 A6) \n (coq.term->string\n A1 A7) \n (coq.error\n HB: cannot infer some information in \n A0 : A6 \n := A7)) \n true, \n coq.env.add-const\n A0 A1 A2 \n A3 A4, \n log.coq.env.add-location\n (\n const A4), \n if\n (\n var A2) \n (\n A5 = none) \n (\n A5 =\n some A2), \n log.private.log-vernac\n (\n log.private.coq.vernac.definition\n A0 A5 A1), \n get-option\n coq:locality \n local =>\n log.coq.arguments.set-implicit\n (const A4) \n [[]]]).", + "rule_text": "(log.coq.env.add-const-noimplicits-failondup A0 A1 A2 A3 A4) :- (std.do!\n [if\n (\n not\n (ground_term\n A2 ;\n ground_term\n A1)) \n (\n ,\n (coq.term->string\n A2 A6) \n (coq.term->string\n A1 A7) \n (coq.error\n HB: cannot infer some information in \n A0 : A6 \n := A7)) \n true, \n coq.env.add-const\n A0 A1 A2 \n A3 A4, \n log.coq.env.add-location\n (\n const A4), \n if\n (\n var A2) \n (\n A5 = none) \n (\n A5 =\n some A2), \n log.private.log-vernac\n (\n log.private.coq.vernac.definition\n A0 A5 A1), \n get-option\n coq:locality \n local =>\n log.coq.arguments.set-implicit\n (const A4) \n [[]]]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 59, "column": 0, "character": 2355 @@ -70764,13 +68356,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -70789,8 +68379,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -70815,13 +68404,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -70836,8 +68423,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -71041,13 +68627,11 @@ "rule": [ "UserRule", { - "rule_text": - "(log.coq.env.add-const-noimplicits-failondup A0 A1 A2 A3 A4) :- (std.do!\n [if\n (\n not\n (ground_term\n A2 ;\n ground_term\n A1)) \n (\n ,\n (coq.term->string\n A2 A6) \n (coq.term->string\n A1 A7) \n (coq.error\n HB: cannot infer some information in \n A0 : A6 \n := A7)) \n true, \n coq.env.add-const\n A0 A1 A2 \n A3 A4, \n log.coq.env.add-location\n (\n const A4), \n if\n (\n var A2) \n (\n A5 = none) \n (\n A5 =\n some A2), \n log.private.log-vernac\n (\n log.private.coq.vernac.definition\n A0 A5 A1), \n get-option\n coq:locality \n local =>\n log.coq.arguments.set-implicit\n (const A4) \n [[]]]).", + "rule_text": "(log.coq.env.add-const-noimplicits-failondup A0 A1 A2 A3 A4) :- (std.do!\n [if\n (\n not\n (ground_term\n A2 ;\n ground_term\n A1)) \n (\n ,\n (coq.term->string\n A2 A6) \n (coq.term->string\n A1 A7) \n (coq.error\n HB: cannot infer some information in \n A0 : A6 \n := A7)) \n true, \n coq.env.add-const\n A0 A1 A2 \n A3 A4, \n log.coq.env.add-location\n (\n const A4), \n if\n (\n var A2) \n (\n A5 = none) \n (\n A5 =\n some A2), \n log.private.log-vernac\n (\n log.private.coq.vernac.definition\n A0 A5 A1), \n get-option\n coq:locality \n local =>\n log.coq.arguments.set-implicit\n (const A4) \n [[]]]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 59, "column": 0, "character": 2355 @@ -71271,13 +68855,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -71296,8 +68878,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -71322,13 +68903,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -71343,8 +68922,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -71382,8 +68960,7 @@ "Inference", { "current_goal_id": 1375, - "current_goal_text": - "std.do!\n [X87 = global (const «HB_unnamed_factory_27»), \n std.drop 0 [global (indt «nat»)] [X88 | _], \n instance.private.check-non-forgetful-inheritance X88 \n (indt «IsSelfA'.axioms_»), \n instance.private.declare-instance (indt «IsSelfA'.axioms_») X88 X87 X89 \n X90, \n if\n (arity (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) =\n arity _) true \n (if-verbose (header X91 , coq.say X91 closing instance section) ,\n log.coq.env.end-section-name X76), acc-clauses current X89]", + "current_goal_text": "std.do!\n [X87 = global (const «HB_unnamed_factory_27»), \n std.drop 0 [global (indt «nat»)] [X88 | _], \n instance.private.check-non-forgetful-inheritance X88 \n (indt «IsSelfA'.axioms_»), \n instance.private.declare-instance (indt «IsSelfA'.axioms_») X88 X87 X89 \n X90, \n if\n (arity (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) =\n arity _) true \n (if-verbose (header X91 , coq.say X91 closing instance section) ,\n log.coq.env.end-section-name X76), acc-clauses current X89]", "current_goal_predicate": "std.do!", "failed_attempts": [], "successful_attempts": [ @@ -71392,8 +68969,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", "rule_loc": [ "File", { @@ -71423,8 +68999,7 @@ }, { "goal_text": "!", "goal_id": 1441 }, { - "goal_text": - "std.do!\n [std.drop 0 [global (indt «nat»)] [X88 | _], \n instance.private.check-non-forgetful-inheritance X88 \n (indt «IsSelfA'.axioms_»), \n instance.private.declare-instance (indt «IsSelfA'.axioms_») X88 X87 X89 \n X90, \n if\n (arity (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) =\n arity _) true \n (if-verbose (header X91 , coq.say X91 closing instance section) ,\n log.coq.env.end-section-name X76), acc-clauses current X89]", + "goal_text": "std.do!\n [std.drop 0 [global (indt «nat»)] [X88 | _], \n instance.private.check-non-forgetful-inheritance X88 \n (indt «IsSelfA'.axioms_»), \n instance.private.declare-instance (indt «IsSelfA'.axioms_») X88 X87 X89 \n X90, \n if\n (arity (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) =\n arity _) true \n (if-verbose (header X91 , coq.say X91 closing instance section) ,\n log.coq.env.end-section-name X76), acc-clauses current X89]", "goal_id": 1442 } ], @@ -71665,13 +69240,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -71690,8 +69263,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -71716,13 +69288,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -71737,8 +69307,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -72026,13 +69595,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -72051,8 +69618,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -72077,13 +69643,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -72098,8 +69662,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -72137,8 +69700,7 @@ "Inference", { "current_goal_id": 1442, - "current_goal_text": - "std.do!\n [std.drop 0 [global (indt «nat»)] [X88 | _], \n instance.private.check-non-forgetful-inheritance X88 \n (indt «IsSelfA'.axioms_»), \n instance.private.declare-instance (indt «IsSelfA'.axioms_») X88 \n (global (const «HB_unnamed_factory_27»)) X89 X90, \n if\n (arity (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) =\n arity _) true \n (if-verbose (header X91 , coq.say X91 closing instance section) ,\n log.coq.env.end-section-name X76), acc-clauses current X89]", + "current_goal_text": "std.do!\n [std.drop 0 [global (indt «nat»)] [X88 | _], \n instance.private.check-non-forgetful-inheritance X88 \n (indt «IsSelfA'.axioms_»), \n instance.private.declare-instance (indt «IsSelfA'.axioms_») X88 \n (global (const «HB_unnamed_factory_27»)) X89 X90, \n if\n (arity (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) =\n arity _) true \n (if-verbose (header X91 , coq.say X91 closing instance section) ,\n log.coq.env.end-section-name X76), acc-clauses current X89]", "current_goal_predicate": "std.do!", "failed_attempts": [], "successful_attempts": [ @@ -72147,8 +69709,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", "rule_loc": [ "File", { @@ -72178,8 +69739,7 @@ }, { "goal_text": "!", "goal_id": 1444 }, { - "goal_text": - "std.do!\n [instance.private.check-non-forgetful-inheritance X88 \n (indt «IsSelfA'.axioms_»), \n instance.private.declare-instance (indt «IsSelfA'.axioms_») X88 \n (global (const «HB_unnamed_factory_27»)) X89 X90, \n if\n (arity (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) =\n arity _) true \n (if-verbose (header X91 , coq.say X91 closing instance section) ,\n log.coq.env.end-section-name X76), acc-clauses current X89]", + "goal_text": "std.do!\n [instance.private.check-non-forgetful-inheritance X88 \n (indt «IsSelfA'.axioms_»), \n instance.private.declare-instance (indt «IsSelfA'.axioms_») X88 \n (global (const «HB_unnamed_factory_27»)) X89 X90, \n if\n (arity (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) =\n arity _) true \n (if-verbose (header X91 , coq.say X91 closing instance section) ,\n log.coq.env.end-section-name X76), acc-clauses current X89]", "goal_id": 1445 } ], @@ -72439,13 +69999,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -72464,8 +70022,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -72490,13 +70047,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -72511,8 +70066,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -72846,13 +70400,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -72871,8 +70423,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -72897,13 +70448,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -72918,8 +70467,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -72958,8 +70506,7 @@ "goal_id": 1443 }, "cut_branch": { - "rule_text": - "(std.drop A0 [_ | A1] A2) :- (!), (A3 is A0 - 1), (std.drop A3 A1 A2).", + "rule_text": "(std.drop A0 [_ | A1] A2) :- (!), (A3 is A0 - 1), (std.drop A3 A1 A2).", "rule_loc": [ "File", { @@ -72977,8 +70524,7 @@ "goal_id": 1443 }, "cut_branch": { - "rule_text": - "(std.drop _ _ _) :- (std.fatal-error drop run out of list items).", + "rule_text": "(std.drop _ _ _) :- (std.fatal-error drop run out of list items).", "rule_loc": [ "File", { @@ -73008,8 +70554,7 @@ "Inference", { "current_goal_id": 1445, - "current_goal_text": - "std.do!\n [instance.private.check-non-forgetful-inheritance (global (indt «nat»)) \n (indt «IsSelfA'.axioms_»), \n instance.private.declare-instance (indt «IsSelfA'.axioms_») \n (global (indt «nat»)) (global (const «HB_unnamed_factory_27»)) X89 X90, \n if\n (arity (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) =\n arity _) true \n (if-verbose (header X91 , coq.say X91 closing instance section) ,\n log.coq.env.end-section-name X76), acc-clauses current X89]", + "current_goal_text": "std.do!\n [instance.private.check-non-forgetful-inheritance (global (indt «nat»)) \n (indt «IsSelfA'.axioms_»), \n instance.private.declare-instance (indt «IsSelfA'.axioms_») \n (global (indt «nat»)) (global (const «HB_unnamed_factory_27»)) X89 X90, \n if\n (arity (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) =\n arity _) true \n (if-verbose (header X91 , coq.say X91 closing instance section) ,\n log.coq.env.end-section-name X76), acc-clauses current X89]", "current_goal_predicate": "std.do!", "failed_attempts": [], "successful_attempts": [ @@ -73018,8 +70563,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", "rule_loc": [ "File", { @@ -73044,14 +70588,12 @@ }, "siblings": [ { - "goal_text": - "instance.private.check-non-forgetful-inheritance (global (indt «nat»)) \n (indt «IsSelfA'.axioms_»)", + "goal_text": "instance.private.check-non-forgetful-inheritance (global (indt «nat»)) \n (indt «IsSelfA'.axioms_»)", "goal_id": 1447 }, { "goal_text": "!", "goal_id": 1448 }, { - "goal_text": - "std.do!\n [instance.private.declare-instance (indt «IsSelfA'.axioms_») \n (global (indt «nat»)) (global (const «HB_unnamed_factory_27»)) X89 X90, \n if\n (arity (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) =\n arity _) true \n (if-verbose (header X91 , coq.say X91 closing instance section) ,\n log.coq.env.end-section-name X76), acc-clauses current X89]", + "goal_text": "std.do!\n [instance.private.declare-instance (indt «IsSelfA'.axioms_») \n (global (indt «nat»)) (global (const «HB_unnamed_factory_27»)) X89 X90, \n if\n (arity (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) =\n arity _) true \n (if-verbose (header X91 , coq.say X91 closing instance section) ,\n log.coq.env.end-section-name X76), acc-clauses current X89]", "goal_id": 1449 } ], @@ -73330,13 +70872,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -73355,8 +70895,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -73381,13 +70920,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -73402,8 +70939,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -73435,10 +70971,8 @@ "Inference", { "current_goal_id": 1447, - "current_goal_text": - "instance.private.check-non-forgetful-inheritance (global (indt «nat»)) \n (indt «IsSelfA'.axioms_»)", - "current_goal_predicate": - "instance.private.check-non-forgetful-inheritance", + "current_goal_text": "instance.private.check-non-forgetful-inheritance (global (indt «nat»)) \n (indt «IsSelfA'.axioms_»)", + "current_goal_predicate": "instance.private.check-non-forgetful-inheritance", "failed_attempts": [], "successful_attempts": [ { @@ -73446,13 +70980,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.check-non-forgetful-inheritance _ _) :- (get-option\n non_forgetful_inheritance \n tt), (!).", + "rule_text": "(instance.private.check-non-forgetful-inheritance _ _) :- (get-option\n non_forgetful_inheritance \n tt), (!).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 341, "column": 0, "character": 14872 @@ -73478,13 +71010,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.check-non-forgetful-inheritance _ _) :- (get-option\n non_forgetful_inheritance \n tt), (!).", + "rule_text": "(instance.private.check-non-forgetful-inheritance _ _) :- (get-option\n non_forgetful_inheritance \n tt), (!).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 341, "column": 0, "character": 14872 @@ -73765,13 +71295,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -73790,8 +71318,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -73816,13 +71343,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -73837,8 +71362,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -73880,13 +71404,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.check-non-forgetful-inheritance _ _) :- (get-option\n non_forgetful_inheritance \n tt), (!).", + "rule_text": "(instance.private.check-non-forgetful-inheritance _ _) :- (get-option\n non_forgetful_inheritance \n tt), (!).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 341, "column": 0, "character": 14872 @@ -74167,13 +71689,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -74192,8 +71712,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -74218,13 +71737,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -74239,8 +71756,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -74272,10 +71788,8 @@ "Inference", { "current_goal_id": 1447, - "current_goal_text": - "instance.private.check-non-forgetful-inheritance (global (indt «nat»)) \n (indt «IsSelfA'.axioms_»)", - "current_goal_predicate": - "instance.private.check-non-forgetful-inheritance", + "current_goal_text": "instance.private.check-non-forgetful-inheritance (global (indt «nat»)) \n (indt «IsSelfA'.axioms_»)", + "current_goal_predicate": "instance.private.check-non-forgetful-inheritance", "failed_attempts": [], "successful_attempts": [ { @@ -74283,13 +71797,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.check-non-forgetful-inheritance A0 A1) :- (std.do!\n [if\n (coq.safe-dest-app\n A0 \n (global\n (\n const A2)) \n _ ,\n structure-key\n A2 _ A3) \n (,\n (nice-gref->string\n A1 A4) \n (nice-gref->string\n A3 A5 ,\n calc\n (A5 ^ .) \n A6) \n (coq.warning\n HB \n HB.non-forgetful-inheritance \n non forgetful inheritance detected.\n \n You have two solutions: \n 1. (Best practice) Reorganize your hierarchy to make \n A4 \n depend on \n A6 \n See the paper \"Competing inheritance paths in \n dependent type theory\" (https://hal.inria.fr/hal-02463336) for more \n explanations \n 2. Use the attribute #[non_forgetful_inheritance] to disable this check. \n We strongly advise you encapsulate this instance inside a module, \n in order to isolate it from the rest of the code, and to be able \n to import it on demand. See the above paper and the file \n https://github.com/math-comp/hierarchy-builder/blob/master/tests/non-forgetful-inheritance.v \n to witness devastating effects.)) \n true]).", + "rule_text": "(instance.private.check-non-forgetful-inheritance A0 A1) :- (std.do!\n [if\n (coq.safe-dest-app\n A0 \n (global\n (\n const A2)) \n _ ,\n structure-key\n A2 _ A3) \n (,\n (nice-gref->string\n A1 A4) \n (nice-gref->string\n A3 A5 ,\n calc\n (A5 ^ .) \n A6) \n (coq.warning\n HB \n HB.non-forgetful-inheritance \n non forgetful inheritance detected.\n \n You have two solutions: \n 1. (Best practice) Reorganize your hierarchy to make \n A4 \n depend on \n A6 \n See the paper \"Competing inheritance paths in \n dependent type theory\" (https://hal.inria.fr/hal-02463336) for more \n explanations \n 2. Use the attribute #[non_forgetful_inheritance] to disable this check. \n We strongly advise you encapsulate this instance inside a module, \n in order to isolate it from the rest of the code, and to be able \n to import it on demand. See the above paper and the file \n https://github.com/math-comp/hierarchy-builder/blob/master/tests/non-forgetful-inheritance.v \n to witness devastating effects.)) \n true]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 343, "column": 0, "character": 14959 @@ -74304,8 +71816,7 @@ }, "siblings": [ { - "goal_text": - "std.do!\n [if\n (coq.safe-dest-app (global (indt «nat»)) (global (const X125)) _ ,\n structure-key X125 _ X126) \n (, (nice-gref->string (indt «IsSelfA'.axioms_») X127) \n (nice-gref->string X126 X128 , calc (X128 ^ .) X129) \n (coq.warning HB HB.non-forgetful-inheritance \n non forgetful inheritance detected.\n You have two solutions: \n 1. (Best practice) Reorganize your hierarchy to make X127 depend on \n X129 See the paper \"Competing inheritance paths in \n dependent type theory\" (https://hal.inria.fr/hal-02463336) for more \n explanations \n 2. Use the attribute #[non_forgetful_inheritance] to disable this check. \n We strongly advise you encapsulate this instance inside a module, \n in order to isolate it from the rest of the code, and to be able \n to import it on demand. See the above paper and the file \n https://github.com/math-comp/hierarchy-builder/blob/master/tests/non-forgetful-inheritance.v \n to witness devastating effects.)) true]", + "goal_text": "std.do!\n [if\n (coq.safe-dest-app (global (indt «nat»)) (global (const X125)) _ ,\n structure-key X125 _ X126) \n (, (nice-gref->string (indt «IsSelfA'.axioms_») X127) \n (nice-gref->string X126 X128 , calc (X128 ^ .) X129) \n (coq.warning HB HB.non-forgetful-inheritance \n non forgetful inheritance detected.\n You have two solutions: \n 1. (Best practice) Reorganize your hierarchy to make X127 depend on \n X129 See the paper \"Competing inheritance paths in \n dependent type theory\" (https://hal.inria.fr/hal-02463336) for more \n explanations \n 2. Use the attribute #[non_forgetful_inheritance] to disable this check. \n We strongly advise you encapsulate this instance inside a module, \n in order to isolate it from the rest of the code, and to be able \n to import it on demand. See the above paper and the file \n https://github.com/math-comp/hierarchy-builder/blob/master/tests/non-forgetful-inheritance.v \n to witness devastating effects.)) true]", "goal_id": 1452 } ], @@ -74318,13 +71829,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.check-non-forgetful-inheritance A0 A1) :- (std.do!\n [if\n (coq.safe-dest-app\n A0 \n (global\n (\n const A2)) \n _ ,\n structure-key\n A2 _ A3) \n (,\n (nice-gref->string\n A1 A4) \n (nice-gref->string\n A3 A5 ,\n calc\n (A5 ^ .) \n A6) \n (coq.warning\n HB \n HB.non-forgetful-inheritance \n non forgetful inheritance detected.\n \n You have two solutions: \n 1. (Best practice) Reorganize your hierarchy to make \n A4 \n depend on \n A6 \n See the paper \"Competing inheritance paths in \n dependent type theory\" (https://hal.inria.fr/hal-02463336) for more \n explanations \n 2. Use the attribute #[non_forgetful_inheritance] to disable this check. \n We strongly advise you encapsulate this instance inside a module, \n in order to isolate it from the rest of the code, and to be able \n to import it on demand. See the above paper and the file \n https://github.com/math-comp/hierarchy-builder/blob/master/tests/non-forgetful-inheritance.v \n to witness devastating effects.)) \n true]).", + "rule_text": "(instance.private.check-non-forgetful-inheritance A0 A1) :- (std.do!\n [if\n (coq.safe-dest-app\n A0 \n (global\n (\n const A2)) \n _ ,\n structure-key\n A2 _ A3) \n (,\n (nice-gref->string\n A1 A4) \n (nice-gref->string\n A3 A5 ,\n calc\n (A5 ^ .) \n A6) \n (coq.warning\n HB \n HB.non-forgetful-inheritance \n non forgetful inheritance detected.\n \n You have two solutions: \n 1. (Best practice) Reorganize your hierarchy to make \n A4 \n depend on \n A6 \n See the paper \"Competing inheritance paths in \n dependent type theory\" (https://hal.inria.fr/hal-02463336) for more \n explanations \n 2. Use the attribute #[non_forgetful_inheritance] to disable this check. \n We strongly advise you encapsulate this instance inside a module, \n in order to isolate it from the rest of the code, and to be able \n to import it on demand. See the above paper and the file \n https://github.com/math-comp/hierarchy-builder/blob/master/tests/non-forgetful-inheritance.v \n to witness devastating effects.)) \n true]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 343, "column": 0, "character": 14959 @@ -74605,13 +72114,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -74630,8 +72137,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -74656,13 +72162,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -74677,8 +72181,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -74710,8 +72213,7 @@ "Inference", { "current_goal_id": 1452, - "current_goal_text": - "std.do!\n [if\n (coq.safe-dest-app (global (indt «nat»)) (global (const X125)) _ ,\n structure-key X125 _ X126) \n (, (nice-gref->string (indt «IsSelfA'.axioms_») X127) \n (nice-gref->string X126 X128 , calc (X128 ^ .) X129) \n (coq.warning HB HB.non-forgetful-inheritance \n non forgetful inheritance detected.\n You have two solutions: \n 1. (Best practice) Reorganize your hierarchy to make X127 depend on \n X129 See the paper \"Competing inheritance paths in \n dependent type theory\" (https://hal.inria.fr/hal-02463336) for more \n explanations \n 2. Use the attribute #[non_forgetful_inheritance] to disable this check. \n We strongly advise you encapsulate this instance inside a module, \n in order to isolate it from the rest of the code, and to be able \n to import it on demand. See the above paper and the file \n https://github.com/math-comp/hierarchy-builder/blob/master/tests/non-forgetful-inheritance.v \n to witness devastating effects.)) true]", + "current_goal_text": "std.do!\n [if\n (coq.safe-dest-app (global (indt «nat»)) (global (const X125)) _ ,\n structure-key X125 _ X126) \n (, (nice-gref->string (indt «IsSelfA'.axioms_») X127) \n (nice-gref->string X126 X128 , calc (X128 ^ .) X129) \n (coq.warning HB HB.non-forgetful-inheritance \n non forgetful inheritance detected.\n You have two solutions: \n 1. (Best practice) Reorganize your hierarchy to make X127 depend on \n X129 See the paper \"Competing inheritance paths in \n dependent type theory\" (https://hal.inria.fr/hal-02463336) for more \n explanations \n 2. Use the attribute #[non_forgetful_inheritance] to disable this check. \n We strongly advise you encapsulate this instance inside a module, \n in order to isolate it from the rest of the code, and to be able \n to import it on demand. See the above paper and the file \n https://github.com/math-comp/hierarchy-builder/blob/master/tests/non-forgetful-inheritance.v \n to witness devastating effects.)) true]", "current_goal_predicate": "std.do!", "failed_attempts": [], "successful_attempts": [ @@ -74720,8 +72222,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", "rule_loc": [ "File", { @@ -74743,8 +72244,7 @@ }, "siblings": [ { - "goal_text": - "if\n (coq.safe-dest-app (global (indt «nat»)) (global (const X125)) _ ,\n structure-key X125 _ X126) \n (, (nice-gref->string (indt «IsSelfA'.axioms_») X127) \n (nice-gref->string X126 X128 , calc (X128 ^ .) X129) \n (coq.warning HB HB.non-forgetful-inheritance \n non forgetful inheritance detected.\n You have two solutions: \n 1. (Best practice) Reorganize your hierarchy to make X127 depend on \n X129 See the paper \"Competing inheritance paths in \n dependent type theory\" (https://hal.inria.fr/hal-02463336) for more \n explanations \n 2. Use the attribute #[non_forgetful_inheritance] to disable this check. \n We strongly advise you encapsulate this instance inside a module, \n in order to isolate it from the rest of the code, and to be able \n to import it on demand. See the above paper and the file \n https://github.com/math-comp/hierarchy-builder/blob/master/tests/non-forgetful-inheritance.v \n to witness devastating effects.)) true", + "goal_text": "if\n (coq.safe-dest-app (global (indt «nat»)) (global (const X125)) _ ,\n structure-key X125 _ X126) \n (, (nice-gref->string (indt «IsSelfA'.axioms_») X127) \n (nice-gref->string X126 X128 , calc (X128 ^ .) X129) \n (coq.warning HB HB.non-forgetful-inheritance \n non forgetful inheritance detected.\n You have two solutions: \n 1. (Best practice) Reorganize your hierarchy to make X127 depend on \n X129 See the paper \"Competing inheritance paths in \n dependent type theory\" (https://hal.inria.fr/hal-02463336) for more \n explanations \n 2. Use the attribute #[non_forgetful_inheritance] to disable this check. \n We strongly advise you encapsulate this instance inside a module, \n in order to isolate it from the rest of the code, and to be able \n to import it on demand. See the above paper and the file \n https://github.com/math-comp/hierarchy-builder/blob/master/tests/non-forgetful-inheritance.v \n to witness devastating effects.)) true", "goal_id": 1453 }, { "goal_text": "!", "goal_id": 1454 }, @@ -74778,13 +72278,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.check-non-forgetful-inheritance A0 A1) :- (std.do!\n [if\n (coq.safe-dest-app\n A0 \n (global\n (\n const A2)) \n _ ,\n structure-key\n A2 _ A3) \n (,\n (nice-gref->string\n A1 A4) \n (nice-gref->string\n A3 A5 ,\n calc\n (A5 ^ .) \n A6) \n (coq.warning\n HB \n HB.non-forgetful-inheritance \n non forgetful inheritance detected.\n \n You have two solutions: \n 1. (Best practice) Reorganize your hierarchy to make \n A4 \n depend on \n A6 \n See the paper \"Competing inheritance paths in \n dependent type theory\" (https://hal.inria.fr/hal-02463336) for more \n explanations \n 2. Use the attribute #[non_forgetful_inheritance] to disable this check. \n We strongly advise you encapsulate this instance inside a module, \n in order to isolate it from the rest of the code, and to be able \n to import it on demand. See the above paper and the file \n https://github.com/math-comp/hierarchy-builder/blob/master/tests/non-forgetful-inheritance.v \n to witness devastating effects.)) \n true]).", + "rule_text": "(instance.private.check-non-forgetful-inheritance A0 A1) :- (std.do!\n [if\n (coq.safe-dest-app\n A0 \n (global\n (\n const A2)) \n _ ,\n structure-key\n A2 _ A3) \n (,\n (nice-gref->string\n A1 A4) \n (nice-gref->string\n A3 A5 ,\n calc\n (A5 ^ .) \n A6) \n (coq.warning\n HB \n HB.non-forgetful-inheritance \n non forgetful inheritance detected.\n \n You have two solutions: \n 1. (Best practice) Reorganize your hierarchy to make \n A4 \n depend on \n A6 \n See the paper \"Competing inheritance paths in \n dependent type theory\" (https://hal.inria.fr/hal-02463336) for more \n explanations \n 2. Use the attribute #[non_forgetful_inheritance] to disable this check. \n We strongly advise you encapsulate this instance inside a module, \n in order to isolate it from the rest of the code, and to be able \n to import it on demand. See the above paper and the file \n https://github.com/math-comp/hierarchy-builder/blob/master/tests/non-forgetful-inheritance.v \n to witness devastating effects.)) \n true]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 343, "column": 0, "character": 14959 @@ -75065,13 +72563,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -75090,8 +72586,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -75116,13 +72611,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -75137,8 +72630,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -75170,8 +72662,7 @@ "Inference", { "current_goal_id": 1453, - "current_goal_text": - "if\n (coq.safe-dest-app (global (indt «nat»)) (global (const X125)) _ ,\n structure-key X125 _ X126) \n (, (nice-gref->string (indt «IsSelfA'.axioms_») X127) \n (nice-gref->string X126 X128 , calc (X128 ^ .) X129) \n (coq.warning HB HB.non-forgetful-inheritance \n non forgetful inheritance detected.\n You have two solutions: \n 1. (Best practice) Reorganize your hierarchy to make X127 depend on \n X129 See the paper \"Competing inheritance paths in \n dependent type theory\" (https://hal.inria.fr/hal-02463336) for more \n explanations \n 2. Use the attribute #[non_forgetful_inheritance] to disable this check. \n We strongly advise you encapsulate this instance inside a module, \n in order to isolate it from the rest of the code, and to be able \n to import it on demand. See the above paper and the file \n https://github.com/math-comp/hierarchy-builder/blob/master/tests/non-forgetful-inheritance.v \n to witness devastating effects.)) true", + "current_goal_text": "if\n (coq.safe-dest-app (global (indt «nat»)) (global (const X125)) _ ,\n structure-key X125 _ X126) \n (, (nice-gref->string (indt «IsSelfA'.axioms_») X127) \n (nice-gref->string X126 X128 , calc (X128 ^ .) X129) \n (coq.warning HB HB.non-forgetful-inheritance \n non forgetful inheritance detected.\n You have two solutions: \n 1. (Best practice) Reorganize your hierarchy to make X127 depend on \n X129 See the paper \"Competing inheritance paths in \n dependent type theory\" (https://hal.inria.fr/hal-02463336) for more \n explanations \n 2. Use the attribute #[non_forgetful_inheritance] to disable this check. \n We strongly advise you encapsulate this instance inside a module, \n in order to isolate it from the rest of the code, and to be able \n to import it on demand. See the above paper and the file \n https://github.com/math-comp/hierarchy-builder/blob/master/tests/non-forgetful-inheritance.v \n to witness devastating effects.)) true", "current_goal_predicate": "if", "failed_attempts": [], "successful_attempts": [ @@ -75205,14 +72696,12 @@ }, "siblings": [ { - "goal_text": - "coq.safe-dest-app (global (indt «nat»)) (global (const X125)) _ ,\n structure-key X125 _ X126", + "goal_text": "coq.safe-dest-app (global (indt «nat»)) (global (const X125)) _ ,\n structure-key X125 _ X126", "goal_id": 1456 }, { "goal_text": "!", "goal_id": 1457 }, { - "goal_text": - ", (nice-gref->string (indt «IsSelfA'.axioms_») X127) \n (nice-gref->string X126 X128 , calc (X128 ^ .) X129) \n (coq.warning HB HB.non-forgetful-inheritance \n non forgetful inheritance detected.\n You have two solutions: \n 1. (Best practice) Reorganize your hierarchy to make X127 depend on X129 \n See the paper \"Competing inheritance paths in \n dependent type theory\" (https://hal.inria.fr/hal-02463336) for more \n explanations \n 2. Use the attribute #[non_forgetful_inheritance] to disable this check. \n We strongly advise you encapsulate this instance inside a module, \n in order to isolate it from the rest of the code, and to be able \n to import it on demand. See the above paper and the file \n https://github.com/math-comp/hierarchy-builder/blob/master/tests/non-forgetful-inheritance.v \n to witness devastating effects.)", + "goal_text": ", (nice-gref->string (indt «IsSelfA'.axioms_») X127) \n (nice-gref->string X126 X128 , calc (X128 ^ .) X129) \n (coq.warning HB HB.non-forgetful-inheritance \n non forgetful inheritance detected.\n You have two solutions: \n 1. (Best practice) Reorganize your hierarchy to make X127 depend on X129 \n See the paper \"Competing inheritance paths in \n dependent type theory\" (https://hal.inria.fr/hal-02463336) for more \n explanations \n 2. Use the attribute #[non_forgetful_inheritance] to disable this check. \n We strongly advise you encapsulate this instance inside a module, \n in order to isolate it from the rest of the code, and to be able \n to import it on demand. See the above paper and the file \n https://github.com/math-comp/hierarchy-builder/blob/master/tests/non-forgetful-inheritance.v \n to witness devastating effects.)", "goal_id": 1458 } ], @@ -75263,13 +72752,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.check-non-forgetful-inheritance A0 A1) :- (std.do!\n [if\n (coq.safe-dest-app\n A0 \n (global\n (\n const A2)) \n _ ,\n structure-key\n A2 _ A3) \n (,\n (nice-gref->string\n A1 A4) \n (nice-gref->string\n A3 A5 ,\n calc\n (A5 ^ .) \n A6) \n (coq.warning\n HB \n HB.non-forgetful-inheritance \n non forgetful inheritance detected.\n \n You have two solutions: \n 1. (Best practice) Reorganize your hierarchy to make \n A4 \n depend on \n A6 \n See the paper \"Competing inheritance paths in \n dependent type theory\" (https://hal.inria.fr/hal-02463336) for more \n explanations \n 2. Use the attribute #[non_forgetful_inheritance] to disable this check. \n We strongly advise you encapsulate this instance inside a module, \n in order to isolate it from the rest of the code, and to be able \n to import it on demand. See the above paper and the file \n https://github.com/math-comp/hierarchy-builder/blob/master/tests/non-forgetful-inheritance.v \n to witness devastating effects.)) \n true]).", + "rule_text": "(instance.private.check-non-forgetful-inheritance A0 A1) :- (std.do!\n [if\n (coq.safe-dest-app\n A0 \n (global\n (\n const A2)) \n _ ,\n structure-key\n A2 _ A3) \n (,\n (nice-gref->string\n A1 A4) \n (nice-gref->string\n A3 A5 ,\n calc\n (A5 ^ .) \n A6) \n (coq.warning\n HB \n HB.non-forgetful-inheritance \n non forgetful inheritance detected.\n \n You have two solutions: \n 1. (Best practice) Reorganize your hierarchy to make \n A4 \n depend on \n A6 \n See the paper \"Competing inheritance paths in \n dependent type theory\" (https://hal.inria.fr/hal-02463336) for more \n explanations \n 2. Use the attribute #[non_forgetful_inheritance] to disable this check. \n We strongly advise you encapsulate this instance inside a module, \n in order to isolate it from the rest of the code, and to be able \n to import it on demand. See the above paper and the file \n https://github.com/math-comp/hierarchy-builder/blob/master/tests/non-forgetful-inheritance.v \n to witness devastating effects.)) \n true]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 343, "column": 0, "character": 14959 @@ -75550,13 +73037,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -75575,8 +73060,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -75601,13 +73085,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -75622,8 +73104,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -75655,8 +73136,7 @@ "Inference", { "current_goal_id": 1456, - "current_goal_text": - "coq.safe-dest-app (global (indt «nat»)) (global (const X125)) _ ,\n structure-key X125 _ X126", + "current_goal_text": "coq.safe-dest-app (global (indt «nat»)) (global (const X125)) _ ,\n structure-key X125 _ X126", "current_goal_predicate": ",", "failed_attempts": [], "successful_attempts": [ @@ -75667,8 +73147,7 @@ }, "siblings": [ { - "goal_text": - "coq.safe-dest-app (global (indt «nat»)) (global (const X125)) _", + "goal_text": "coq.safe-dest-app (global (indt «nat»)) (global (const X125)) _", "goal_id": 1459 }, { "goal_text": "structure-key X125 _ X126", "goal_id": 1460 } @@ -75725,13 +73204,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.check-non-forgetful-inheritance A0 A1) :- (std.do!\n [if\n (coq.safe-dest-app\n A0 \n (global\n (\n const A2)) \n _ ,\n structure-key\n A2 _ A3) \n (,\n (nice-gref->string\n A1 A4) \n (nice-gref->string\n A3 A5 ,\n calc\n (A5 ^ .) \n A6) \n (coq.warning\n HB \n HB.non-forgetful-inheritance \n non forgetful inheritance detected.\n \n You have two solutions: \n 1. (Best practice) Reorganize your hierarchy to make \n A4 \n depend on \n A6 \n See the paper \"Competing inheritance paths in \n dependent type theory\" (https://hal.inria.fr/hal-02463336) for more \n explanations \n 2. Use the attribute #[non_forgetful_inheritance] to disable this check. \n We strongly advise you encapsulate this instance inside a module, \n in order to isolate it from the rest of the code, and to be able \n to import it on demand. See the above paper and the file \n https://github.com/math-comp/hierarchy-builder/blob/master/tests/non-forgetful-inheritance.v \n to witness devastating effects.)) \n true]).", + "rule_text": "(instance.private.check-non-forgetful-inheritance A0 A1) :- (std.do!\n [if\n (coq.safe-dest-app\n A0 \n (global\n (\n const A2)) \n _ ,\n structure-key\n A2 _ A3) \n (,\n (nice-gref->string\n A1 A4) \n (nice-gref->string\n A3 A5 ,\n calc\n (A5 ^ .) \n A6) \n (coq.warning\n HB \n HB.non-forgetful-inheritance \n non forgetful inheritance detected.\n \n You have two solutions: \n 1. (Best practice) Reorganize your hierarchy to make \n A4 \n depend on \n A6 \n See the paper \"Competing inheritance paths in \n dependent type theory\" (https://hal.inria.fr/hal-02463336) for more \n explanations \n 2. Use the attribute #[non_forgetful_inheritance] to disable this check. \n We strongly advise you encapsulate this instance inside a module, \n in order to isolate it from the rest of the code, and to be able \n to import it on demand. See the above paper and the file \n https://github.com/math-comp/hierarchy-builder/blob/master/tests/non-forgetful-inheritance.v \n to witness devastating effects.)) \n true]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 343, "column": 0, "character": 14959 @@ -76012,13 +73489,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -76037,8 +73512,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -76063,13 +73537,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -76084,8 +73556,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -76117,8 +73588,7 @@ "Inference", { "current_goal_id": 1459, - "current_goal_text": - "coq.safe-dest-app (global (indt «nat»)) (global (const X125)) _", + "current_goal_text": "coq.safe-dest-app (global (indt «nat»)) (global (const X125)) _", "current_goal_predicate": "coq.safe-dest-app", "failed_attempts": [ { @@ -76215,13 +73685,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.check-non-forgetful-inheritance A0 A1) :- (std.do!\n [if\n (coq.safe-dest-app\n A0 \n (global\n (\n const A2)) \n _ ,\n structure-key\n A2 _ A3) \n (,\n (nice-gref->string\n A1 A4) \n (nice-gref->string\n A3 A5 ,\n calc\n (A5 ^ .) \n A6) \n (coq.warning\n HB \n HB.non-forgetful-inheritance \n non forgetful inheritance detected.\n \n You have two solutions: \n 1. (Best practice) Reorganize your hierarchy to make \n A4 \n depend on \n A6 \n See the paper \"Competing inheritance paths in \n dependent type theory\" (https://hal.inria.fr/hal-02463336) for more \n explanations \n 2. Use the attribute #[non_forgetful_inheritance] to disable this check. \n We strongly advise you encapsulate this instance inside a module, \n in order to isolate it from the rest of the code, and to be able \n to import it on demand. See the above paper and the file \n https://github.com/math-comp/hierarchy-builder/blob/master/tests/non-forgetful-inheritance.v \n to witness devastating effects.)) \n true]).", + "rule_text": "(instance.private.check-non-forgetful-inheritance A0 A1) :- (std.do!\n [if\n (coq.safe-dest-app\n A0 \n (global\n (\n const A2)) \n _ ,\n structure-key\n A2 _ A3) \n (,\n (nice-gref->string\n A1 A4) \n (nice-gref->string\n A3 A5 ,\n calc\n (A5 ^ .) \n A6) \n (coq.warning\n HB \n HB.non-forgetful-inheritance \n non forgetful inheritance detected.\n \n You have two solutions: \n 1. (Best practice) Reorganize your hierarchy to make \n A4 \n depend on \n A6 \n See the paper \"Competing inheritance paths in \n dependent type theory\" (https://hal.inria.fr/hal-02463336) for more \n explanations \n 2. Use the attribute #[non_forgetful_inheritance] to disable this check. \n We strongly advise you encapsulate this instance inside a module, \n in order to isolate it from the rest of the code, and to be able \n to import it on demand. See the above paper and the file \n https://github.com/math-comp/hierarchy-builder/blob/master/tests/non-forgetful-inheritance.v \n to witness devastating effects.)) \n true]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 343, "column": 0, "character": 14959 @@ -76502,13 +73970,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -76527,8 +73993,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -76553,13 +74018,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -76574,8 +74037,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -76607,8 +74069,7 @@ "Inference", { "current_goal_id": 1453, - "current_goal_text": - "if\n (coq.safe-dest-app (global (indt «nat»)) (global (const X125)) _ ,\n structure-key X125 _ X126) \n (, (nice-gref->string (indt «IsSelfA'.axioms_») X127) \n (nice-gref->string X126 X128 , calc (X128 ^ .) X129) \n (coq.warning HB HB.non-forgetful-inheritance \n non forgetful inheritance detected.\n You have two solutions: \n 1. (Best practice) Reorganize your hierarchy to make X127 depend on \n X129 See the paper \"Competing inheritance paths in \n dependent type theory\" (https://hal.inria.fr/hal-02463336) for more \n explanations \n 2. Use the attribute #[non_forgetful_inheritance] to disable this check. \n We strongly advise you encapsulate this instance inside a module, \n in order to isolate it from the rest of the code, and to be able \n to import it on demand. See the above paper and the file \n https://github.com/math-comp/hierarchy-builder/blob/master/tests/non-forgetful-inheritance.v \n to witness devastating effects.)) true", + "current_goal_text": "if\n (coq.safe-dest-app (global (indt «nat»)) (global (const X125)) _ ,\n structure-key X125 _ X126) \n (, (nice-gref->string (indt «IsSelfA'.axioms_») X127) \n (nice-gref->string X126 X128 , calc (X128 ^ .) X129) \n (coq.warning HB HB.non-forgetful-inheritance \n non forgetful inheritance detected.\n You have two solutions: \n 1. (Best practice) Reorganize your hierarchy to make X127 depend on \n X129 See the paper \"Competing inheritance paths in \n dependent type theory\" (https://hal.inria.fr/hal-02463336) for more \n explanations \n 2. Use the attribute #[non_forgetful_inheritance] to disable this check. \n We strongly advise you encapsulate this instance inside a module, \n in order to isolate it from the rest of the code, and to be able \n to import it on demand. See the above paper and the file \n https://github.com/math-comp/hierarchy-builder/blob/master/tests/non-forgetful-inheritance.v \n to witness devastating effects.)) true", "current_goal_predicate": "if", "failed_attempts": [], "successful_attempts": [ @@ -76679,13 +74140,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.check-non-forgetful-inheritance A0 A1) :- (std.do!\n [if\n (coq.safe-dest-app\n A0 \n (global\n (\n const A2)) \n _ ,\n structure-key\n A2 _ A3) \n (,\n (nice-gref->string\n A1 A4) \n (nice-gref->string\n A3 A5 ,\n calc\n (A5 ^ .) \n A6) \n (coq.warning\n HB \n HB.non-forgetful-inheritance \n non forgetful inheritance detected.\n \n You have two solutions: \n 1. (Best practice) Reorganize your hierarchy to make \n A4 \n depend on \n A6 \n See the paper \"Competing inheritance paths in \n dependent type theory\" (https://hal.inria.fr/hal-02463336) for more \n explanations \n 2. Use the attribute #[non_forgetful_inheritance] to disable this check. \n We strongly advise you encapsulate this instance inside a module, \n in order to isolate it from the rest of the code, and to be able \n to import it on demand. See the above paper and the file \n https://github.com/math-comp/hierarchy-builder/blob/master/tests/non-forgetful-inheritance.v \n to witness devastating effects.)) \n true]).", + "rule_text": "(instance.private.check-non-forgetful-inheritance A0 A1) :- (std.do!\n [if\n (coq.safe-dest-app\n A0 \n (global\n (\n const A2)) \n _ ,\n structure-key\n A2 _ A3) \n (,\n (nice-gref->string\n A1 A4) \n (nice-gref->string\n A3 A5 ,\n calc\n (A5 ^ .) \n A6) \n (coq.warning\n HB \n HB.non-forgetful-inheritance \n non forgetful inheritance detected.\n \n You have two solutions: \n 1. (Best practice) Reorganize your hierarchy to make \n A4 \n depend on \n A6 \n See the paper \"Competing inheritance paths in \n dependent type theory\" (https://hal.inria.fr/hal-02463336) for more \n explanations \n 2. Use the attribute #[non_forgetful_inheritance] to disable this check. \n We strongly advise you encapsulate this instance inside a module, \n in order to isolate it from the rest of the code, and to be able \n to import it on demand. See the above paper and the file \n https://github.com/math-comp/hierarchy-builder/blob/master/tests/non-forgetful-inheritance.v \n to witness devastating effects.)) \n true]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 343, "column": 0, "character": 14959 @@ -76966,13 +74425,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -76991,8 +74448,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -77017,13 +74473,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -77038,8 +74492,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -77161,13 +74614,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.check-non-forgetful-inheritance A0 A1) :- (std.do!\n [if\n (coq.safe-dest-app\n A0 \n (global\n (\n const A2)) \n _ ,\n structure-key\n A2 _ A3) \n (,\n (nice-gref->string\n A1 A4) \n (nice-gref->string\n A3 A5 ,\n calc\n (A5 ^ .) \n A6) \n (coq.warning\n HB \n HB.non-forgetful-inheritance \n non forgetful inheritance detected.\n \n You have two solutions: \n 1. (Best practice) Reorganize your hierarchy to make \n A4 \n depend on \n A6 \n See the paper \"Competing inheritance paths in \n dependent type theory\" (https://hal.inria.fr/hal-02463336) for more \n explanations \n 2. Use the attribute #[non_forgetful_inheritance] to disable this check. \n We strongly advise you encapsulate this instance inside a module, \n in order to isolate it from the rest of the code, and to be able \n to import it on demand. See the above paper and the file \n https://github.com/math-comp/hierarchy-builder/blob/master/tests/non-forgetful-inheritance.v \n to witness devastating effects.)) \n true]).", + "rule_text": "(instance.private.check-non-forgetful-inheritance A0 A1) :- (std.do!\n [if\n (coq.safe-dest-app\n A0 \n (global\n (\n const A2)) \n _ ,\n structure-key\n A2 _ A3) \n (,\n (nice-gref->string\n A1 A4) \n (nice-gref->string\n A3 A5 ,\n calc\n (A5 ^ .) \n A6) \n (coq.warning\n HB \n HB.non-forgetful-inheritance \n non forgetful inheritance detected.\n \n You have two solutions: \n 1. (Best practice) Reorganize your hierarchy to make \n A4 \n depend on \n A6 \n See the paper \"Competing inheritance paths in \n dependent type theory\" (https://hal.inria.fr/hal-02463336) for more \n explanations \n 2. Use the attribute #[non_forgetful_inheritance] to disable this check. \n We strongly advise you encapsulate this instance inside a module, \n in order to isolate it from the rest of the code, and to be able \n to import it on demand. See the above paper and the file \n https://github.com/math-comp/hierarchy-builder/blob/master/tests/non-forgetful-inheritance.v \n to witness devastating effects.)) \n true]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 343, "column": 0, "character": 14959 @@ -77448,13 +74899,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -77473,8 +74922,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -77499,13 +74947,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -77520,8 +74966,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -77630,13 +75075,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.check-non-forgetful-inheritance A0 A1) :- (std.do!\n [if\n (coq.safe-dest-app\n A0 \n (global\n (\n const A2)) \n _ ,\n structure-key\n A2 _ A3) \n (,\n (nice-gref->string\n A1 A4) \n (nice-gref->string\n A3 A5 ,\n calc\n (A5 ^ .) \n A6) \n (coq.warning\n HB \n HB.non-forgetful-inheritance \n non forgetful inheritance detected.\n \n You have two solutions: \n 1. (Best practice) Reorganize your hierarchy to make \n A4 \n depend on \n A6 \n See the paper \"Competing inheritance paths in \n dependent type theory\" (https://hal.inria.fr/hal-02463336) for more \n explanations \n 2. Use the attribute #[non_forgetful_inheritance] to disable this check. \n We strongly advise you encapsulate this instance inside a module, \n in order to isolate it from the rest of the code, and to be able \n to import it on demand. See the above paper and the file \n https://github.com/math-comp/hierarchy-builder/blob/master/tests/non-forgetful-inheritance.v \n to witness devastating effects.)) \n true]).", + "rule_text": "(instance.private.check-non-forgetful-inheritance A0 A1) :- (std.do!\n [if\n (coq.safe-dest-app\n A0 \n (global\n (\n const A2)) \n _ ,\n structure-key\n A2 _ A3) \n (,\n (nice-gref->string\n A1 A4) \n (nice-gref->string\n A3 A5 ,\n calc\n (A5 ^ .) \n A6) \n (coq.warning\n HB \n HB.non-forgetful-inheritance \n non forgetful inheritance detected.\n \n You have two solutions: \n 1. (Best practice) Reorganize your hierarchy to make \n A4 \n depend on \n A6 \n See the paper \"Competing inheritance paths in \n dependent type theory\" (https://hal.inria.fr/hal-02463336) for more \n explanations \n 2. Use the attribute #[non_forgetful_inheritance] to disable this check. \n We strongly advise you encapsulate this instance inside a module, \n in order to isolate it from the rest of the code, and to be able \n to import it on demand. See the above paper and the file \n https://github.com/math-comp/hierarchy-builder/blob/master/tests/non-forgetful-inheritance.v \n to witness devastating effects.)) \n true]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 343, "column": 0, "character": 14959 @@ -77917,13 +75360,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -77942,8 +75383,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -77968,13 +75408,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -77989,8 +75427,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -78028,8 +75465,7 @@ "Inference", { "current_goal_id": 1449, - "current_goal_text": - "std.do!\n [instance.private.declare-instance (indt «IsSelfA'.axioms_») \n (global (indt «nat»)) (global (const «HB_unnamed_factory_27»)) X89 X90, \n if\n (arity (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) =\n arity _) true \n (if-verbose (header X91 , coq.say X91 closing instance section) ,\n log.coq.env.end-section-name X76), acc-clauses current X89]", + "current_goal_text": "std.do!\n [instance.private.declare-instance (indt «IsSelfA'.axioms_») \n (global (indt «nat»)) (global (const «HB_unnamed_factory_27»)) X89 X90, \n if\n (arity (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) =\n arity _) true \n (if-verbose (header X91 , coq.say X91 closing instance section) ,\n log.coq.env.end-section-name X76), acc-clauses current X89]", "current_goal_predicate": "std.do!", "failed_attempts": [], "successful_attempts": [ @@ -78038,8 +75474,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", "rule_loc": [ "File", { @@ -78064,14 +75499,12 @@ }, "siblings": [ { - "goal_text": - "instance.private.declare-instance (indt «IsSelfA'.axioms_») \n (global (indt «nat»)) (global (const «HB_unnamed_factory_27»)) X89 X90", + "goal_text": "instance.private.declare-instance (indt «IsSelfA'.axioms_») \n (global (indt «nat»)) (global (const «HB_unnamed_factory_27»)) X89 X90", "goal_id": 1462 }, { "goal_text": "!", "goal_id": 1463 }, { - "goal_text": - "std.do!\n [if\n (arity (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) =\n arity _) true \n (if-verbose (header X91 , coq.say X91 closing instance section) ,\n log.coq.env.end-section-name X76), acc-clauses current X89]", + "goal_text": "std.do!\n [if\n (arity (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) =\n arity _) true \n (if-verbose (header X91 , coq.say X91 closing instance section) ,\n log.coq.env.end-section-name X76), acc-clauses current X89]", "goal_id": 1464 } ], @@ -78369,13 +75802,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -78394,8 +75825,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -78420,13 +75850,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -78441,8 +75869,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -78474,8 +75901,7 @@ "Inference", { "current_goal_id": 1462, - "current_goal_text": - "instance.private.declare-instance (indt «IsSelfA'.axioms_») \n (global (indt «nat»)) (global (const «HB_unnamed_factory_27»)) X89 X90", + "current_goal_text": "instance.private.declare-instance (indt «IsSelfA'.axioms_») \n (global (indt «nat»)) (global (const «HB_unnamed_factory_27»)) X89 X90", "current_goal_predicate": "instance.private.declare-instance", "failed_attempts": [], "successful_attempts": [ @@ -78484,13 +75910,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (current-mode\n (builder-from A1 A5 \n A6 _)), (!), \n (if (get-option local tt) \n (coq.error\n HB: declare-instance: cannot make builders local.\n If you want temporary instances, make an alias, e.g. with let T' := T) \n true), (!), \n (instance.private.declare-canonical-instances-from-factory-and-local-builders\n A0 A1 A2 A5 A6 A3 A4).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (current-mode\n (builder-from A1 A5 \n A6 _)), (!), \n (if (get-option local tt) \n (coq.error\n HB: declare-instance: cannot make builders local.\n If you want temporary instances, make an alias, e.g. with let T' := T) \n true), (!), \n (instance.private.declare-canonical-instances-from-factory-and-local-builders\n A0 A1 A2 A5 A6 A3 A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 188, "column": 0, "character": 8025 @@ -78510,20 +75934,17 @@ }, "siblings": [ { - "goal_text": - "current-mode (builder-from (global (indt «nat»)) X130 X131 _)", + "goal_text": "current-mode (builder-from (global (indt «nat»)) X130 X131 _)", "goal_id": 1465 }, { "goal_text": "!", "goal_id": 1466 }, { - "goal_text": - "if (get-option local tt) \n (coq.error\n HB: declare-instance: cannot make builders local.\n If you want temporary instances, make an alias, e.g. with let T' := T) \n true", + "goal_text": "if (get-option local tt) \n (coq.error\n HB: declare-instance: cannot make builders local.\n If you want temporary instances, make an alias, e.g. with let T' := T) \n true", "goal_id": 1467 }, { "goal_text": "!", "goal_id": 1468 }, { - "goal_text": - "instance.private.declare-canonical-instances-from-factory-and-local-builders\n (indt «IsSelfA'.axioms_») (global (indt «nat»)) \n (global (const «HB_unnamed_factory_27»)) X130 X131 X89 X90", + "goal_text": "instance.private.declare-canonical-instances-from-factory-and-local-builders\n (indt «IsSelfA'.axioms_») (global (indt «nat»)) \n (global (const «HB_unnamed_factory_27»)) X130 X131 X89 X90", "goal_id": 1469 } ], @@ -78536,13 +75957,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (current-mode\n (builder-from A1 A5 \n A6 _)), (!), \n (if (get-option local tt) \n (coq.error\n HB: declare-instance: cannot make builders local.\n If you want temporary instances, make an alias, e.g. with let T' := T) \n true), (!), \n (instance.private.declare-canonical-instances-from-factory-and-local-builders\n A0 A1 A2 A5 A6 A3 A4).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (current-mode\n (builder-from A1 A5 \n A6 _)), (!), \n (if (get-option local tt) \n (coq.error\n HB: declare-instance: cannot make builders local.\n If you want temporary instances, make an alias, e.g. with let T' := T) \n true), (!), \n (instance.private.declare-canonical-instances-from-factory-and-local-builders\n A0 A1 A2 A5 A6 A3 A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 188, "column": 0, "character": 8025 @@ -78842,13 +76261,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -78867,8 +76284,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -78893,13 +76309,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -78914,8 +76328,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -78947,8 +76360,7 @@ "Inference", { "current_goal_id": 1465, - "current_goal_text": - "current-mode (builder-from (global (indt «nat»)) X130 X131 _)", + "current_goal_text": "current-mode (builder-from (global (indt «nat»)) X130 X131 _)", "current_goal_predicate": "current-mode", "failed_attempts": [], "successful_attempts": [], @@ -78958,13 +76370,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (current-mode\n (builder-from A1 A5 \n A6 _)), (!), \n (if (get-option local tt) \n (coq.error\n HB: declare-instance: cannot make builders local.\n If you want temporary instances, make an alias, e.g. with let T' := T) \n true), (!), \n (instance.private.declare-canonical-instances-from-factory-and-local-builders\n A0 A1 A2 A5 A6 A3 A4).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (current-mode\n (builder-from A1 A5 \n A6 _)), (!), \n (if (get-option local tt) \n (coq.error\n HB: declare-instance: cannot make builders local.\n If you want temporary instances, make an alias, e.g. with let T' := T) \n true), (!), \n (instance.private.declare-canonical-instances-from-factory-and-local-builders\n A0 A1 A2 A5 A6 A3 A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 188, "column": 0, "character": 8025 @@ -79264,13 +76674,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -79289,8 +76697,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -79315,13 +76722,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -79336,8 +76741,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -79369,8 +76773,7 @@ "Inference", { "current_goal_id": 1462, - "current_goal_text": - "instance.private.declare-instance (indt «IsSelfA'.axioms_») \n (global (indt «nat»)) (global (const «HB_unnamed_factory_27»)) X89 X90", + "current_goal_text": "instance.private.declare-instance (indt «IsSelfA'.axioms_») \n (global (indt «nat»)) (global (const «HB_unnamed_factory_27»)) X89 X90", "current_goal_predicate": "instance.private.declare-instance", "failed_attempts": [], "successful_attempts": [ @@ -79379,13 +76782,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -79405,13 +76806,11 @@ }, "siblings": [ { - "goal_text": - "instance.private.declare-canonical-instances-from-factory\n (indt «IsSelfA'.axioms_») (global (indt «nat»)) \n (global (const «HB_unnamed_factory_27»)) X90", + "goal_text": "instance.private.declare-canonical-instances-from-factory\n (indt «IsSelfA'.axioms_») (global (indt «nat»)) \n (global (const «HB_unnamed_factory_27»)) X90", "goal_id": 1470 }, { - "goal_text": - "if (get-option export tt) \n (coq.env.current-library X132 ,\n std.map X90 (c0 \\ c1 \\\n sigma c2 \\ sigma c3 \\ c0 = pr c2 c3 , c1 = instance-to-export X132 c2 c3) \n X89) (X89 = [])", + "goal_text": "if (get-option export tt) \n (coq.env.current-library X132 ,\n std.map X90 (c0 \\ c1 \\\n sigma c2 \\ sigma c3 \\ c0 = pr c2 c3 , c1 = instance-to-export X132 c2 c3) \n X89) (X89 = [])", "goal_id": 1471 } ], @@ -79424,13 +76823,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -79730,13 +77127,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -79755,8 +77150,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -79781,13 +77175,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -79802,8 +77194,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -79835,10 +77226,8 @@ "Inference", { "current_goal_id": 1470, - "current_goal_text": - "instance.private.declare-canonical-instances-from-factory\n (indt «IsSelfA'.axioms_») (global (indt «nat»)) \n (global (const «HB_unnamed_factory_27»)) X90", - "current_goal_predicate": - "instance.private.declare-canonical-instances-from-factory", + "current_goal_text": "instance.private.declare-canonical-instances-from-factory\n (indt «IsSelfA'.axioms_») (global (indt «nat»)) \n (global (const «HB_unnamed_factory_27»)) X90", + "current_goal_predicate": "instance.private.declare-canonical-instances-from-factory", "failed_attempts": [], "successful_attempts": [ { @@ -79846,13 +77235,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -79871,8 +77258,7 @@ }, "siblings": [ { - "goal_text": - "std.do!\n [synthesis.under-mixin-src-from-factory.do! (global (indt «nat»)) \n (global (const «HB_unnamed_factory_27»)) \n [synthesis.under-local-canonical-mixins-of.do! (global (indt «nat»)) \n [(factory-provides (indt «IsSelfA'.axioms_») X133 ,\n list-w-params_list X133 X134), \n instance.private.add-all-mixins (global (indt «nat»)) \n (indt «IsSelfA'.axioms_») X134 tt _ X135, \n (findall-classes-for X134 X136 ,\n instance.declare-all (global (indt «nat»)) X136 X137)]], \n std.append X135 X137 X90]", + "goal_text": "std.do!\n [synthesis.under-mixin-src-from-factory.do! (global (indt «nat»)) \n (global (const «HB_unnamed_factory_27»)) \n [synthesis.under-local-canonical-mixins-of.do! (global (indt «nat»)) \n [(factory-provides (indt «IsSelfA'.axioms_») X133 ,\n list-w-params_list X133 X134), \n instance.private.add-all-mixins (global (indt «nat»)) \n (indt «IsSelfA'.axioms_») X134 tt _ X135, \n (findall-classes-for X134 X136 ,\n instance.declare-all (global (indt «nat»)) X136 X137)]], \n std.append X135 X137 X90]", "goal_id": 1472 } ], @@ -79885,13 +77271,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -79906,13 +77290,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -80212,13 +77594,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -80237,8 +77617,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -80263,13 +77642,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -80284,8 +77661,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -80317,8 +77693,7 @@ "Inference", { "current_goal_id": 1472, - "current_goal_text": - "std.do!\n [synthesis.under-mixin-src-from-factory.do! (global (indt «nat»)) \n (global (const «HB_unnamed_factory_27»)) \n [synthesis.under-local-canonical-mixins-of.do! (global (indt «nat»)) \n [(factory-provides (indt «IsSelfA'.axioms_») X133 ,\n list-w-params_list X133 X134), \n instance.private.add-all-mixins (global (indt «nat»)) \n (indt «IsSelfA'.axioms_») X134 tt _ X135, \n (findall-classes-for X134 X136 ,\n instance.declare-all (global (indt «nat»)) X136 X137)]], \n std.append X135 X137 X90]", + "current_goal_text": "std.do!\n [synthesis.under-mixin-src-from-factory.do! (global (indt «nat»)) \n (global (const «HB_unnamed_factory_27»)) \n [synthesis.under-local-canonical-mixins-of.do! (global (indt «nat»)) \n [(factory-provides (indt «IsSelfA'.axioms_») X133 ,\n list-w-params_list X133 X134), \n instance.private.add-all-mixins (global (indt «nat»)) \n (indt «IsSelfA'.axioms_») X134 tt _ X135, \n (findall-classes-for X134 X136 ,\n instance.declare-all (global (indt «nat»)) X136 X137)]], \n std.append X135 X137 X90]", "current_goal_predicate": "std.do!", "failed_attempts": [], "successful_attempts": [ @@ -80327,8 +77702,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", "rule_loc": [ "File", { @@ -80350,8 +77724,7 @@ }, "siblings": [ { - "goal_text": - "synthesis.under-mixin-src-from-factory.do! (global (indt «nat»)) \n (global (const «HB_unnamed_factory_27»)) \n [synthesis.under-local-canonical-mixins-of.do! (global (indt «nat»)) \n [(factory-provides (indt «IsSelfA'.axioms_») X133 ,\n list-w-params_list X133 X134), \n instance.private.add-all-mixins (global (indt «nat»)) \n (indt «IsSelfA'.axioms_») X134 tt _ X135, \n (findall-classes-for X134 X136 ,\n instance.declare-all (global (indt «nat»)) X136 X137)]]", + "goal_text": "synthesis.under-mixin-src-from-factory.do! (global (indt «nat»)) \n (global (const «HB_unnamed_factory_27»)) \n [synthesis.under-local-canonical-mixins-of.do! (global (indt «nat»)) \n [(factory-provides (indt «IsSelfA'.axioms_») X133 ,\n list-w-params_list X133 X134), \n instance.private.add-all-mixins (global (indt «nat»)) \n (indt «IsSelfA'.axioms_») X134 tt _ X135, \n (findall-classes-for X134 X136 ,\n instance.declare-all (global (indt «nat»)) X136 X137)]]", "goal_id": 1473 }, { "goal_text": "!", "goal_id": 1474 }, @@ -80388,13 +77761,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -80409,13 +77780,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -80715,13 +78084,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -80740,8 +78107,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -80766,13 +78132,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -80787,8 +78151,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -80820,10 +78183,8 @@ "Inference", { "current_goal_id": 1473, - "current_goal_text": - "synthesis.under-mixin-src-from-factory.do! (global (indt «nat»)) \n (global (const «HB_unnamed_factory_27»)) \n [synthesis.under-local-canonical-mixins-of.do! (global (indt «nat»)) \n [(factory-provides (indt «IsSelfA'.axioms_») X133 ,\n list-w-params_list X133 X134), \n instance.private.add-all-mixins (global (indt «nat»)) \n (indt «IsSelfA'.axioms_») X134 tt _ X135, \n (findall-classes-for X134 X136 ,\n instance.declare-all (global (indt «nat»)) X136 X137)]]", - "current_goal_predicate": - "synthesis.under-mixin-src-from-factory.do!", + "current_goal_text": "synthesis.under-mixin-src-from-factory.do! (global (indt «nat»)) \n (global (const «HB_unnamed_factory_27»)) \n [synthesis.under-local-canonical-mixins-of.do! (global (indt «nat»)) \n [(factory-provides (indt «IsSelfA'.axioms_») X133 ,\n list-w-params_list X133 X134), \n instance.private.add-all-mixins (global (indt «nat»)) \n (indt «IsSelfA'.axioms_») X134 tt _ X135, \n (findall-classes-for X134 X136 ,\n instance.declare-all (global (indt «nat»)) X136 X137)]]", + "current_goal_predicate": "synthesis.under-mixin-src-from-factory.do!", "failed_attempts": [], "successful_attempts": [ { @@ -80831,13 +78192,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -80858,8 +78217,7 @@ }, "siblings": [ { - "goal_text": - "std.do!\n [synthesis.private.factory-instance->new-mixins [] \n (global (const «HB_unnamed_factory_27»)) X138, \n std.map X138 (c0 \\ c1 \\\n c1 =\n mixin-src (global (indt «nat»)) c0 \n (global (const «HB_unnamed_factory_27»))) X139, \n X139 =>\n std.do!\n [synthesis.under-local-canonical-mixins-of.do! (global (indt «nat»)) \n [(factory-provides (indt «IsSelfA'.axioms_») X133 ,\n list-w-params_list X133 X134), \n instance.private.add-all-mixins (global (indt «nat»)) \n (indt «IsSelfA'.axioms_») X134 tt _ X135, \n (findall-classes-for X134 X136 ,\n instance.declare-all (global (indt «nat»)) X136 X137)]]]", + "goal_text": "std.do!\n [synthesis.private.factory-instance->new-mixins [] \n (global (const «HB_unnamed_factory_27»)) X138, \n std.map X138 (c0 \\ c1 \\\n c1 =\n mixin-src (global (indt «nat»)) c0 \n (global (const «HB_unnamed_factory_27»))) X139, \n X139 =>\n std.do!\n [synthesis.under-local-canonical-mixins-of.do! (global (indt «nat»)) \n [(factory-provides (indt «IsSelfA'.axioms_») X133 ,\n list-w-params_list X133 X134), \n instance.private.add-all-mixins (global (indt «nat»)) \n (indt «IsSelfA'.axioms_») X134 tt _ X135, \n (findall-classes-for X134 X136 ,\n instance.declare-all (global (indt «nat»)) X136 X137)]]]", "goal_id": 1476 } ], @@ -80872,13 +78230,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -80912,13 +78268,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -80933,13 +78287,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -81239,13 +78591,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -81264,8 +78614,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -81290,13 +78639,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -81311,8 +78658,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -81344,8 +78690,7 @@ "Inference", { "current_goal_id": 1476, - "current_goal_text": - "std.do!\n [synthesis.private.factory-instance->new-mixins [] \n (global (const «HB_unnamed_factory_27»)) X138, \n std.map X138 (c0 \\ c1 \\\n c1 =\n mixin-src (global (indt «nat»)) c0 \n (global (const «HB_unnamed_factory_27»))) X139, \n X139 =>\n std.do!\n [synthesis.under-local-canonical-mixins-of.do! (global (indt «nat»)) \n [(factory-provides (indt «IsSelfA'.axioms_») X133 ,\n list-w-params_list X133 X134), \n instance.private.add-all-mixins (global (indt «nat»)) \n (indt «IsSelfA'.axioms_») X134 tt _ X135, \n (findall-classes-for X134 X136 ,\n instance.declare-all (global (indt «nat»)) X136 X137)]]]", + "current_goal_text": "std.do!\n [synthesis.private.factory-instance->new-mixins [] \n (global (const «HB_unnamed_factory_27»)) X138, \n std.map X138 (c0 \\ c1 \\\n c1 =\n mixin-src (global (indt «nat»)) c0 \n (global (const «HB_unnamed_factory_27»))) X139, \n X139 =>\n std.do!\n [synthesis.under-local-canonical-mixins-of.do! (global (indt «nat»)) \n [(factory-provides (indt «IsSelfA'.axioms_») X133 ,\n list-w-params_list X133 X134), \n instance.private.add-all-mixins (global (indt «nat»)) \n (indt «IsSelfA'.axioms_») X134 tt _ X135, \n (findall-classes-for X134 X136 ,\n instance.declare-all (global (indt «nat»)) X136 X137)]]]", "current_goal_predicate": "std.do!", "failed_attempts": [], "successful_attempts": [ @@ -81354,8 +78699,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", "rule_loc": [ "File", { @@ -81380,14 +78724,12 @@ }, "siblings": [ { - "goal_text": - "synthesis.private.factory-instance->new-mixins [] \n (global (const «HB_unnamed_factory_27»)) X138", + "goal_text": "synthesis.private.factory-instance->new-mixins [] \n (global (const «HB_unnamed_factory_27»)) X138", "goal_id": 1477 }, { "goal_text": "!", "goal_id": 1478 }, { - "goal_text": - "std.do!\n [std.map X138 (c0 \\ c1 \\\n c1 =\n mixin-src (global (indt «nat»)) c0 \n (global (const «HB_unnamed_factory_27»))) X139, \n X139 =>\n std.do!\n [synthesis.under-local-canonical-mixins-of.do! (global (indt «nat»)) \n [(factory-provides (indt «IsSelfA'.axioms_») X133 ,\n list-w-params_list X133 X134), \n instance.private.add-all-mixins (global (indt «nat»)) \n (indt «IsSelfA'.axioms_») X134 tt _ X135, \n (findall-classes-for X134 X136 ,\n instance.declare-all (global (indt «nat»)) X136 X137)]]]", + "goal_text": "std.do!\n [std.map X138 (c0 \\ c1 \\\n c1 =\n mixin-src (global (indt «nat»)) c0 \n (global (const «HB_unnamed_factory_27»))) X139, \n X139 =>\n std.do!\n [synthesis.under-local-canonical-mixins-of.do! (global (indt «nat»)) \n [(factory-provides (indt «IsSelfA'.axioms_») X133 ,\n list-w-params_list X133 X134), \n instance.private.add-all-mixins (global (indt «nat»)) \n (indt «IsSelfA'.axioms_») X134 tt _ X135, \n (findall-classes-for X134 X136 ,\n instance.declare-all (global (indt «nat»)) X136 X137)]]]", "goal_id": 1479 } ], @@ -81419,13 +78761,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -81459,13 +78799,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -81480,13 +78818,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -81786,13 +79122,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -81811,8 +79145,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -81837,13 +79170,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -81858,8 +79189,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -81891,10 +79221,8 @@ "Inference", { "current_goal_id": 1477, - "current_goal_text": - "synthesis.private.factory-instance->new-mixins [] \n (global (const «HB_unnamed_factory_27»)) X138", - "current_goal_predicate": - "synthesis.private.factory-instance->new-mixins", + "current_goal_text": "synthesis.private.factory-instance->new-mixins [] \n (global (const «HB_unnamed_factory_27»)) X138", + "current_goal_predicate": "synthesis.private.factory-instance->new-mixins", "failed_attempts": [], "successful_attempts": [ { @@ -81902,13 +79230,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -81926,8 +79252,7 @@ }, "siblings": [ { - "goal_text": - "std.do!\n [std.assert-ok!\n (coq.typecheck (global (const «HB_unnamed_factory_27»)) X140) \n mixin-src: X illtyped, \n if (not (coq.safe-dest-app X140 (global _) _)) \n (, (coq.term->string (global (const «HB_unnamed_factory_27»)) X141) \n (coq.term->string X140 X142) \n (coq.error Term:\n X141 \nhas type:\n X142 \nwhich is not a record)) true, \n coq.term->gref X140 X143, factory-provides X143 X144, \n list-w-params_list X144 X145, \n std.filter X145 (c0 \\ not (std.mem! [] c0)) X138]", + "goal_text": "std.do!\n [std.assert-ok!\n (coq.typecheck (global (const «HB_unnamed_factory_27»)) X140) \n mixin-src: X illtyped, \n if (not (coq.safe-dest-app X140 (global _) _)) \n (, (coq.term->string (global (const «HB_unnamed_factory_27»)) X141) \n (coq.term->string X140 X142) \n (coq.error Term:\n X141 \nhas type:\n X142 \nwhich is not a record)) true, \n coq.term->gref X140 X143, factory-provides X143 X144, \n list-w-params_list X144 X145, \n std.filter X145 (c0 \\ not (std.mem! [] c0)) X138]", "goal_id": 1480 } ], @@ -81940,13 +79265,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -81980,13 +79303,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -82020,13 +79341,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -82041,13 +79360,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -82347,13 +79664,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -82372,8 +79687,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -82398,13 +79712,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -82419,8 +79731,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -82452,8 +79763,7 @@ "Inference", { "current_goal_id": 1480, - "current_goal_text": - "std.do!\n [std.assert-ok!\n (coq.typecheck (global (const «HB_unnamed_factory_27»)) X140) \n mixin-src: X illtyped, \n if (not (coq.safe-dest-app X140 (global _) _)) \n (, (coq.term->string (global (const «HB_unnamed_factory_27»)) X141) \n (coq.term->string X140 X142) \n (coq.error Term:\n X141 \nhas type:\n X142 \nwhich is not a record)) true, \n coq.term->gref X140 X143, factory-provides X143 X144, \n list-w-params_list X144 X145, \n std.filter X145 (c0 \\ not (std.mem! [] c0)) X138]", + "current_goal_text": "std.do!\n [std.assert-ok!\n (coq.typecheck (global (const «HB_unnamed_factory_27»)) X140) \n mixin-src: X illtyped, \n if (not (coq.safe-dest-app X140 (global _) _)) \n (, (coq.term->string (global (const «HB_unnamed_factory_27»)) X141) \n (coq.term->string X140 X142) \n (coq.error Term:\n X141 \nhas type:\n X142 \nwhich is not a record)) true, \n coq.term->gref X140 X143, factory-provides X143 X144, \n list-w-params_list X144 X145, \n std.filter X145 (c0 \\ not (std.mem! [] c0)) X138]", "current_goal_predicate": "std.do!", "failed_attempts": [], "successful_attempts": [ @@ -82462,8 +79772,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", "rule_loc": [ "File", { @@ -82488,14 +79797,12 @@ }, "siblings": [ { - "goal_text": - "std.assert-ok!\n (coq.typecheck (global (const «HB_unnamed_factory_27»)) X140) \n mixin-src: X illtyped", + "goal_text": "std.assert-ok!\n (coq.typecheck (global (const «HB_unnamed_factory_27»)) X140) \n mixin-src: X illtyped", "goal_id": 1481 }, { "goal_text": "!", "goal_id": 1482 }, { - "goal_text": - "std.do!\n [if (not (coq.safe-dest-app X140 (global _) _)) \n (, (coq.term->string (global (const «HB_unnamed_factory_27»)) X141) \n (coq.term->string X140 X142) \n (coq.error Term:\n X141 \nhas type:\n X142 \nwhich is not a record)) true, \n coq.term->gref X140 X143, factory-provides X143 X144, \n list-w-params_list X144 X145, \n std.filter X145 (c0 \\ not (std.mem! [] c0)) X138]", + "goal_text": "std.do!\n [if (not (coq.safe-dest-app X140 (global _) _)) \n (, (coq.term->string (global (const «HB_unnamed_factory_27»)) X141) \n (coq.term->string X140 X142) \n (coq.error Term:\n X141 \nhas type:\n X142 \nwhich is not a record)) true, \n coq.term->gref X140 X143, factory-provides X143 X144, \n list-w-params_list X144 X145, \n std.filter X145 (c0 \\ not (std.mem! [] c0)) X138]", "goal_id": 1483 } ], @@ -82527,13 +79834,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -82567,13 +79872,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -82607,13 +79910,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -82628,13 +79929,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -82934,13 +80233,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -82959,8 +80256,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -82985,13 +80281,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -83006,8 +80300,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -83039,8 +80332,7 @@ "Inference", { "current_goal_id": 1481, - "current_goal_text": - "std.assert-ok!\n (coq.typecheck (global (const «HB_unnamed_factory_27»)) X140) \n mixin-src: X illtyped", + "current_goal_text": "std.assert-ok!\n (coq.typecheck (global (const «HB_unnamed_factory_27»)) X140) \n mixin-src: X illtyped", "current_goal_predicate": "std.assert-ok!", "failed_attempts": [], "successful_attempts": [ @@ -83049,8 +80341,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert-ok! A0 A1) :- (A0 A2), (!), \n (A2 = ok ; A2 = error A3 , std.fatal-error-w-data A1 A3), (!).", + "rule_text": "(std.assert-ok! A0 A1) :- (A0 A2), (!), \n (A2 = ok ; A2 = error A3 , std.fatal-error-w-data A1 A3), (!).", "rule_loc": [ "File", { @@ -83072,14 +80363,12 @@ }, "siblings": [ { - "goal_text": - "coq.typecheck (global (const «HB_unnamed_factory_27»)) X140 X146", + "goal_text": "coq.typecheck (global (const «HB_unnamed_factory_27»)) X140 X146", "goal_id": 1484 }, { "goal_text": "!", "goal_id": 1485 }, { - "goal_text": - "X146 = ok ;\n X146 = error X147 , std.fatal-error-w-data mixin-src: X illtyped X147", + "goal_text": "X146 = ok ;\n X146 = error X147 , std.fatal-error-w-data mixin-src: X illtyped X147", "goal_id": 1486 }, { "goal_text": "!", "goal_id": 1487 } @@ -83093,8 +80382,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert-ok! A0 A1) :- (A0 A2), (!), \n (A2 = ok ; A2 = error A3 , std.fatal-error-w-data A1 A3), (!).", + "rule_text": "(std.assert-ok! A0 A1) :- (A0 A2), (!), \n (A2 = ok ; A2 = error A3 , std.fatal-error-w-data A1 A3), (!).", "rule_loc": [ "File", { @@ -83132,13 +80420,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -83172,13 +80458,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -83212,13 +80496,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -83233,13 +80515,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -83539,13 +80819,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -83564,8 +80842,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -83590,13 +80867,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -83611,8 +80886,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -83644,8 +80918,7 @@ "Inference", { "current_goal_id": 1484, - "current_goal_text": - "coq.typecheck (global (const «HB_unnamed_factory_27»)) X140 X146", + "current_goal_text": "coq.typecheck (global (const «HB_unnamed_factory_27»)) X140 X146", "current_goal_predicate": "coq.typecheck", "failed_attempts": [], "successful_attempts": [ @@ -83656,8 +80929,7 @@ }, "siblings": [ { - "goal_text": - "X140 = app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]", + "goal_text": "X140 = app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]", "goal_id": 1488 }, { "goal_text": "X146 = ok", "goal_id": 1489 } @@ -83676,8 +80948,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert-ok! A0 A1) :- (A0 A2), (!), \n (A2 = ok ; A2 = error A3 , std.fatal-error-w-data A1 A3), (!).", + "rule_text": "(std.assert-ok! A0 A1) :- (A0 A2), (!), \n (A2 = ok ; A2 = error A3 , std.fatal-error-w-data A1 A3), (!).", "rule_loc": [ "File", { @@ -83715,13 +80986,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -83755,13 +81024,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -83795,13 +81062,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -83816,13 +81081,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -84122,13 +81385,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -84147,8 +81408,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -84173,13 +81433,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -84194,8 +81452,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -84227,8 +81484,7 @@ "Inference", { "current_goal_id": 1488, - "current_goal_text": - "X140 = app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]", + "current_goal_text": "X140 = app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]", "current_goal_predicate": "=", "failed_attempts": [], "successful_attempts": [ @@ -84262,8 +81518,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert-ok! A0 A1) :- (A0 A2), (!), \n (A2 = ok ; A2 = error A3 , std.fatal-error-w-data A1 A3), (!).", + "rule_text": "(std.assert-ok! A0 A1) :- (A0 A2), (!), \n (A2 = ok ; A2 = error A3 , std.fatal-error-w-data A1 A3), (!).", "rule_loc": [ "File", { @@ -84301,13 +81556,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -84341,13 +81594,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -84381,13 +81632,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -84402,13 +81651,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -84708,13 +81955,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -84733,8 +81978,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -84759,13 +82003,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -84780,8 +82022,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -84842,8 +82083,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert-ok! A0 A1) :- (A0 A2), (!), \n (A2 = ok ; A2 = error A3 , std.fatal-error-w-data A1 A3), (!).", + "rule_text": "(std.assert-ok! A0 A1) :- (A0 A2), (!), \n (A2 = ok ; A2 = error A3 , std.fatal-error-w-data A1 A3), (!).", "rule_loc": [ "File", { @@ -84881,13 +82121,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -84921,13 +82159,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -84961,13 +82197,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -84982,13 +82216,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -85288,13 +82520,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -85313,8 +82543,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -85339,13 +82568,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -85360,8 +82587,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -85396,13 +82622,11 @@ "cut_victims": [ { "cut_branch_for_goal": { - "goal_text": - "std.assert-ok!\n (coq.typecheck (global (const «HB_unnamed_factory_27»)) X140) \n mixin-src: X illtyped", + "goal_text": "std.assert-ok!\n (coq.typecheck (global (const «HB_unnamed_factory_27»)) X140) \n mixin-src: X illtyped", "goal_id": 1481 }, "cut_branch": { - "rule_text": - "(std.assert-ok! _ A0) :- (std.fatal-error-w-data A0 no diagnostic returned).", + "rule_text": "(std.assert-ok! _ A0) :- (std.fatal-error-w-data A0 no diagnostic returned).", "rule_loc": [ "File", { @@ -85426,8 +82650,7 @@ "Inference", { "current_goal_id": 1486, - "current_goal_text": - "ok = ok ; ok = error X147 , std.fatal-error-w-data mixin-src: X illtyped X147", + "current_goal_text": "ok = ok ; ok = error X147 , std.fatal-error-w-data mixin-src: X illtyped X147", "current_goal_predicate": ";", "failed_attempts": [], "successful_attempts": [ @@ -85479,8 +82702,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert-ok! A0 A1) :- (A0 A2), (!), \n (A2 = ok ; A2 = error A3 , std.fatal-error-w-data A1 A3), (!).", + "rule_text": "(std.assert-ok! A0 A1) :- (A0 A2), (!), \n (A2 = ok ; A2 = error A3 , std.fatal-error-w-data A1 A3), (!).", "rule_loc": [ "File", { @@ -85518,13 +82740,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -85558,13 +82778,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -85598,13 +82816,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -85619,13 +82835,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -85925,13 +83139,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -85950,8 +83162,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -85976,13 +83187,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -85997,8 +83206,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -86073,8 +83281,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert-ok! A0 A1) :- (A0 A2), (!), \n (A2 = ok ; A2 = error A3 , std.fatal-error-w-data A1 A3), (!).", + "rule_text": "(std.assert-ok! A0 A1) :- (A0 A2), (!), \n (A2 = ok ; A2 = error A3 , std.fatal-error-w-data A1 A3), (!).", "rule_loc": [ "File", { @@ -86112,13 +83319,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -86152,13 +83357,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -86192,13 +83395,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -86213,13 +83414,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -86519,13 +83718,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -86544,8 +83741,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -86570,13 +83766,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -86591,8 +83785,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -86627,8 +83820,7 @@ "cut_victims": [ { "cut_branch_for_goal": { - "goal_text": - "X146 = ok ;\n X146 = error X147 , std.fatal-error-w-data mixin-src: X illtyped X147", + "goal_text": "X146 = ok ;\n X146 = error X147 , std.fatal-error-w-data mixin-src: X illtyped X147", "goal_id": 1486 }, "cut_branch": { @@ -86662,8 +83854,7 @@ "Inference", { "current_goal_id": 1483, - "current_goal_text": - "std.do!\n [if\n (not\n (coq.safe-dest-app\n (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) \n (global _) _)) \n (, (coq.term->string (global (const «HB_unnamed_factory_27»)) X141) \n (coq.term->string\n (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) X142) \n (coq.error Term:\n X141 \nhas type:\n X142 \nwhich is not a record)) true, \n coq.term->gref\n (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) X143, \n factory-provides X143 X144, list-w-params_list X144 X145, \n std.filter X145 (c0 \\ not (std.mem! [] c0)) X138]", + "current_goal_text": "std.do!\n [if\n (not\n (coq.safe-dest-app\n (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) \n (global _) _)) \n (, (coq.term->string (global (const «HB_unnamed_factory_27»)) X141) \n (coq.term->string\n (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) X142) \n (coq.error Term:\n X141 \nhas type:\n X142 \nwhich is not a record)) true, \n coq.term->gref\n (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) X143, \n factory-provides X143 X144, list-w-params_list X144 X145, \n std.filter X145 (c0 \\ not (std.mem! [] c0)) X138]", "current_goal_predicate": "std.do!", "failed_attempts": [], "successful_attempts": [ @@ -86672,8 +83863,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", "rule_loc": [ "File", { @@ -86698,14 +83888,12 @@ }, "siblings": [ { - "goal_text": - "if\n (not\n (coq.safe-dest-app\n (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) \n (global _) _)) \n (, (coq.term->string (global (const «HB_unnamed_factory_27»)) X141) \n (coq.term->string\n (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) X142) \n (coq.error Term:\n X141 \nhas type:\n X142 \nwhich is not a record)) true", + "goal_text": "if\n (not\n (coq.safe-dest-app\n (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) \n (global _) _)) \n (, (coq.term->string (global (const «HB_unnamed_factory_27»)) X141) \n (coq.term->string\n (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) X142) \n (coq.error Term:\n X141 \nhas type:\n X142 \nwhich is not a record)) true", "goal_id": 1491 }, { "goal_text": "!", "goal_id": 1492 }, { - "goal_text": - "std.do!\n [coq.term->gref\n (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) X143, \n factory-provides X143 X144, list-w-params_list X144 X145, \n std.filter X145 (c0 \\ not (std.mem! [] c0)) X138]", + "goal_text": "std.do!\n [coq.term->gref\n (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) X143, \n factory-provides X143 X144, list-w-params_list X144 X145, \n std.filter X145 (c0 \\ not (std.mem! [] c0)) X138]", "goal_id": 1493 } ], @@ -86756,13 +83944,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -86796,13 +83982,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -86836,13 +84020,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -86857,13 +84039,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -87163,13 +84343,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -87188,8 +84366,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -87214,13 +84391,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -87235,8 +84410,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -87268,8 +84442,7 @@ "Inference", { "current_goal_id": 1491, - "current_goal_text": - "if\n (not\n (coq.safe-dest-app\n (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) \n (global _) _)) \n (, (coq.term->string (global (const «HB_unnamed_factory_27»)) X141) \n (coq.term->string\n (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) X142) \n (coq.error Term:\n X141 \nhas type:\n X142 \nwhich is not a record)) true", + "current_goal_text": "if\n (not\n (coq.safe-dest-app\n (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) \n (global _) _)) \n (, (coq.term->string (global (const «HB_unnamed_factory_27»)) X141) \n (coq.term->string\n (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) X142) \n (coq.error Term:\n X141 \nhas type:\n X142 \nwhich is not a record)) true", "current_goal_predicate": "if", "failed_attempts": [], "successful_attempts": [ @@ -87303,14 +84476,12 @@ }, "siblings": [ { - "goal_text": - "not\n (coq.safe-dest-app\n (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) \n (global _) _)", + "goal_text": "not\n (coq.safe-dest-app\n (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) \n (global _) _)", "goal_id": 1494 }, { "goal_text": "!", "goal_id": 1495 }, { - "goal_text": - ", (coq.term->string (global (const «HB_unnamed_factory_27»)) X141) \n (coq.term->string\n (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) X142) \n (coq.error Term:\n X141 \nhas type:\n X142 \nwhich is not a record)", + "goal_text": ", (coq.term->string (global (const «HB_unnamed_factory_27»)) X141) \n (coq.term->string\n (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) X142) \n (coq.error Term:\n X141 \nhas type:\n X142 \nwhich is not a record)", "goal_id": 1496 } ], @@ -87380,13 +84551,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -87420,13 +84589,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -87460,13 +84627,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -87481,13 +84646,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -87787,13 +84950,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -87812,8 +84973,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -87838,13 +84998,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -87859,8 +85017,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -87892,8 +85049,7 @@ "Inference", { "current_goal_id": 1494, - "current_goal_text": - "not\n (coq.safe-dest-app\n (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) \n (global _) _)", + "current_goal_text": "not\n (coq.safe-dest-app\n (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) \n (global _) _)", "current_goal_predicate": "not", "failed_attempts": [], "successful_attempts": [ @@ -87923,8 +85079,7 @@ }, "siblings": [ { - "goal_text": - "coq.safe-dest-app\n (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) \n (global _) _", + "goal_text": "coq.safe-dest-app\n (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) \n (global _) _", "goal_id": 1497 }, { "goal_text": "!", "goal_id": 1498 }, @@ -88015,13 +85170,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -88055,13 +85208,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -88095,13 +85246,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -88116,13 +85265,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -88422,13 +85569,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -88447,8 +85592,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -88473,13 +85617,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -88494,8 +85636,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -88527,8 +85668,7 @@ "Inference", { "current_goal_id": 1497, - "current_goal_text": - "coq.safe-dest-app\n (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) \n (global _) _", + "current_goal_text": "coq.safe-dest-app\n (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) \n (global _) _", "current_goal_predicate": "coq.safe-dest-app", "failed_attempts": [], "successful_attempts": [ @@ -88537,8 +85677,7 @@ "rule": [ "UserRule", { - "rule_text": - "(coq.safe-dest-app (app [A0 | A1]) A2 A3) :- (!), \n (coq.safe-dest-app A0 A2 A4), (std.append A4 A1 A3).", + "rule_text": "(coq.safe-dest-app (app [A0 | A1]) A2 A3) :- (!), \n (coq.safe-dest-app A0 A2 A4), (std.append A4 A1 A3).", "rule_loc": [ "File", { @@ -88559,8 +85698,7 @@ "siblings": [ { "goal_text": "!", "goal_id": 1500 }, { - "goal_text": - "coq.safe-dest-app (global (indt «IsSelfA'.axioms_»)) (global _) X148", + "goal_text": "coq.safe-dest-app (global (indt «IsSelfA'.axioms_»)) (global _) X148", "goal_id": 1501 }, { @@ -88577,8 +85715,7 @@ "rule": [ "UserRule", { - "rule_text": - "(coq.safe-dest-app (app [A0 | A1]) A2 A3) :- (!), \n (coq.safe-dest-app A0 A2 A4), (std.append A4 A1 A3).", + "rule_text": "(coq.safe-dest-app (app [A0 | A1]) A2 A3) :- (!), \n (coq.safe-dest-app A0 A2 A4), (std.append A4 A1 A3).", "rule_loc": [ "File", { @@ -88673,13 +85810,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -88713,13 +85848,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -88753,13 +85886,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -88774,13 +85905,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -89080,13 +86209,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -89105,8 +86232,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -89131,13 +86257,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -89152,8 +86276,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -89188,8 +86311,7 @@ "cut_victims": [ { "cut_branch_for_goal": { - "goal_text": - "coq.safe-dest-app\n (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) \n (global _) _", + "goal_text": "coq.safe-dest-app\n (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) \n (global _) _", "goal_id": 1497 }, "cut_branch": { @@ -89217,8 +86339,7 @@ "Inference", { "current_goal_id": 1501, - "current_goal_text": - "coq.safe-dest-app (global (indt «IsSelfA'.axioms_»)) (global _) X148", + "current_goal_text": "coq.safe-dest-app (global (indt «IsSelfA'.axioms_»)) (global _) X148", "current_goal_predicate": "coq.safe-dest-app", "failed_attempts": [], "successful_attempts": [ @@ -89273,8 +86394,7 @@ "rule": [ "UserRule", { - "rule_text": - "(coq.safe-dest-app (app [A0 | A1]) A2 A3) :- (!), \n (coq.safe-dest-app A0 A2 A4), (std.append A4 A1 A3).", + "rule_text": "(coq.safe-dest-app (app [A0 | A1]) A2 A3) :- (!), \n (coq.safe-dest-app A0 A2 A4), (std.append A4 A1 A3).", "rule_loc": [ "File", { @@ -89369,13 +86489,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -89409,13 +86527,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -89449,13 +86565,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -89470,13 +86584,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -89776,13 +86888,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -89801,8 +86911,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -89827,13 +86936,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -89848,8 +86955,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -89936,8 +87042,7 @@ "rule": [ "UserRule", { - "rule_text": - "(coq.safe-dest-app (app [A0 | A1]) A2 A3) :- (!), \n (coq.safe-dest-app A0 A2 A4), (std.append A4 A1 A3).", + "rule_text": "(coq.safe-dest-app (app [A0 | A1]) A2 A3) :- (!), \n (coq.safe-dest-app A0 A2 A4), (std.append A4 A1 A3).", "rule_loc": [ "File", { @@ -90032,13 +87137,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -90072,13 +87175,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -90112,13 +87213,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -90133,13 +87232,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -90439,13 +87536,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -90464,8 +87559,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -90490,13 +87584,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -90511,8 +87603,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -90547,8 +87638,7 @@ "cut_victims": [ { "cut_branch_for_goal": { - "goal_text": - "not\n (coq.safe-dest-app\n (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) \n (global _) _)", + "goal_text": "not\n (coq.safe-dest-app\n (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) \n (global _) _)", "goal_id": 1494 }, "cut_branch": { @@ -90662,13 +87752,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -90702,13 +87790,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -90742,13 +87828,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -90763,13 +87847,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -91069,13 +88151,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -91094,8 +88174,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -91120,13 +88199,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -91141,8 +88218,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -91174,8 +88250,7 @@ "Inference", { "current_goal_id": 1491, - "current_goal_text": - "if\n (not\n (coq.safe-dest-app\n (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) \n (global _) _)) \n (, (coq.term->string (global (const «HB_unnamed_factory_27»)) X141) \n (coq.term->string\n (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) X142) \n (coq.error Term:\n X141 \nhas type:\n X142 \nwhich is not a record)) true", + "current_goal_text": "if\n (not\n (coq.safe-dest-app\n (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) \n (global _) _)) \n (, (coq.term->string (global (const «HB_unnamed_factory_27»)) X141) \n (coq.term->string\n (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) X142) \n (coq.error Term:\n X141 \nhas type:\n X142 \nwhich is not a record)) true", "current_goal_predicate": "if", "failed_attempts": [], "successful_attempts": [ @@ -91265,13 +88340,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -91305,13 +88378,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -91345,13 +88416,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -91366,13 +88435,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -91672,13 +88739,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -91697,8 +88762,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -91723,13 +88787,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -91744,8 +88806,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -91886,13 +88947,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -91926,13 +88985,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -91966,13 +89023,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -91987,13 +89042,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -92293,13 +89346,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -92318,8 +89369,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -92344,13 +89394,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -92365,8 +89413,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -92404,8 +89451,7 @@ "Inference", { "current_goal_id": 1493, - "current_goal_text": - "std.do!\n [coq.term->gref\n (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) X143, \n factory-provides X143 X144, list-w-params_list X144 X145, \n std.filter X145 (c0 \\ not (std.mem! [] c0)) X138]", + "current_goal_text": "std.do!\n [coq.term->gref\n (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) X143, \n factory-provides X143 X144, list-w-params_list X144 X145, \n std.filter X145 (c0 \\ not (std.mem! [] c0)) X138]", "current_goal_predicate": "std.do!", "failed_attempts": [], "successful_attempts": [ @@ -92414,8 +89460,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", "rule_loc": [ "File", { @@ -92440,14 +89485,12 @@ }, "siblings": [ { - "goal_text": - "coq.term->gref\n (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) X143", + "goal_text": "coq.term->gref\n (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) X143", "goal_id": 1504 }, { "goal_text": "!", "goal_id": 1505 }, { - "goal_text": - "std.do!\n [factory-provides X143 X144, list-w-params_list X144 X145, \n std.filter X145 (c0 \\ not (std.mem! [] c0)) X138]", + "goal_text": "std.do!\n [factory-provides X143 X144, list-w-params_list X144 X145, \n std.filter X145 (c0 \\ not (std.mem! [] c0)) X138]", "goal_id": 1506 } ], @@ -92517,13 +89560,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -92557,13 +89598,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -92597,13 +89636,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -92618,13 +89655,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -92924,13 +89959,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -92949,8 +89982,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -92975,13 +90007,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -92996,8 +90026,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -93029,8 +90058,7 @@ "Inference", { "current_goal_id": 1504, - "current_goal_text": - "coq.term->gref\n (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) X143", + "current_goal_text": "coq.term->gref\n (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) X143", "current_goal_predicate": "coq.term->gref", "failed_attempts": [], "successful_attempts": [ @@ -93039,8 +90067,7 @@ "rule": [ "UserRule", { - "rule_text": - "(coq.term->gref (app [A0 | _]) A1) :- (!), (coq.term->gref A0 A1).", + "rule_text": "(coq.term->gref (app [A0 | _]) A1) :- (!), (coq.term->gref A0 A1).", "rule_loc": [ "File", { @@ -93060,8 +90087,7 @@ "siblings": [ { "goal_text": "!", "goal_id": 1507 }, { - "goal_text": - "coq.term->gref (global (indt «IsSelfA'.axioms_»)) X143", + "goal_text": "coq.term->gref (global (indt «IsSelfA'.axioms_»)) X143", "goal_id": 1508 } ], @@ -93074,8 +90100,7 @@ "rule": [ "UserRule", { - "rule_text": - "(coq.term->gref (app [A0 | _]) A1) :- (!), (coq.term->gref A0 A1).", + "rule_text": "(coq.term->gref (app [A0 | _]) A1) :- (!), (coq.term->gref A0 A1).", "rule_loc": [ "File", { @@ -93151,13 +90176,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -93191,13 +90214,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -93231,13 +90252,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -93252,13 +90271,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -93558,13 +90575,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -93583,8 +90598,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -93609,13 +90623,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -93630,8 +90642,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -93666,13 +90677,11 @@ "cut_victims": [ { "cut_branch_for_goal": { - "goal_text": - "coq.term->gref\n (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) X143", + "goal_text": "coq.term->gref\n (app [global (indt «IsSelfA'.axioms_»), global (indt «nat»)]) X143", "goal_id": 1504 }, "cut_branch": { - "rule_text": - "(coq.term->gref A0 _) :- (std.fatal-error-w-data\n term->gref: input has no global reference A0).", + "rule_text": "(coq.term->gref A0 _) :- (std.fatal-error-w-data\n term->gref: input has no global reference A0).", "rule_loc": [ "File", { @@ -93696,8 +90705,7 @@ "Inference", { "current_goal_id": 1508, - "current_goal_text": - "coq.term->gref (global (indt «IsSelfA'.axioms_»)) X143", + "current_goal_text": "coq.term->gref (global (indt «IsSelfA'.axioms_»)) X143", "current_goal_predicate": "coq.term->gref", "failed_attempts": [], "successful_attempts": [ @@ -93752,8 +90760,7 @@ "rule": [ "UserRule", { - "rule_text": - "(coq.term->gref (app [A0 | _]) A1) :- (!), (coq.term->gref A0 A1).", + "rule_text": "(coq.term->gref (app [A0 | _]) A1) :- (!), (coq.term->gref A0 A1).", "rule_loc": [ "File", { @@ -93829,13 +90836,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -93869,13 +90874,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -93909,13 +90912,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -93930,13 +90931,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -94236,13 +91235,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -94261,8 +91258,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -94287,13 +91283,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -94308,8 +91302,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -94344,13 +91337,11 @@ "cut_victims": [ { "cut_branch_for_goal": { - "goal_text": - "coq.term->gref (global (indt «IsSelfA'.axioms_»)) X143", + "goal_text": "coq.term->gref (global (indt «IsSelfA'.axioms_»)) X143", "goal_id": 1508 }, "cut_branch": { - "rule_text": - "(coq.term->gref A0 _) :- (std.fatal-error-w-data\n term->gref: input has no global reference A0).", + "rule_text": "(coq.term->gref A0 _) :- (std.fatal-error-w-data\n term->gref: input has no global reference A0).", "rule_loc": [ "File", { @@ -94380,8 +91371,7 @@ "Inference", { "current_goal_id": 1506, - "current_goal_text": - "std.do!\n [factory-provides (indt «IsSelfA'.axioms_») X144, \n list-w-params_list X144 X145, \n std.filter X145 (c0 \\ not (std.mem! [] c0)) X138]", + "current_goal_text": "std.do!\n [factory-provides (indt «IsSelfA'.axioms_») X144, \n list-w-params_list X144 X145, \n std.filter X145 (c0 \\ not (std.mem! [] c0)) X138]", "current_goal_predicate": "std.do!", "failed_attempts": [], "successful_attempts": [ @@ -94390,8 +91380,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", "rule_loc": [ "File", { @@ -94416,14 +91405,12 @@ }, "siblings": [ { - "goal_text": - "factory-provides (indt «IsSelfA'.axioms_») X144", + "goal_text": "factory-provides (indt «IsSelfA'.axioms_») X144", "goal_id": 1510 }, { "goal_text": "!", "goal_id": 1511 }, { - "goal_text": - "std.do!\n [list-w-params_list X144 X145, \n std.filter X145 (c0 \\ not (std.mem! [] c0)) X138]", + "goal_text": "std.do!\n [list-w-params_list X144 X145, \n std.filter X145 (c0 \\ not (std.mem! [] c0)) X138]", "goal_id": 1512 } ], @@ -94512,13 +91499,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -94552,13 +91537,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -94592,13 +91575,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -94613,13 +91594,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -94919,13 +91898,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -94944,8 +91921,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -94970,13 +91946,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -94991,8 +91965,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -95024,8 +91997,7 @@ "Inference", { "current_goal_id": 1510, - "current_goal_text": - "factory-provides (indt «IsSelfA'.axioms_») X144", + "current_goal_text": "factory-provides (indt «IsSelfA'.axioms_») X144", "current_goal_predicate": "factory-provides", "failed_attempts": [], "successful_attempts": [ @@ -95034,13 +92006,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -95055,8 +92025,7 @@ }, "siblings": [ { - "goal_text": - "std.do!\n [factory-alias->gref (indt «IsSelfA'.axioms_») X150, gref-deps X150 X151, \n w-params.map X151 (factory-provides.base X150) X144]", + "goal_text": "std.do!\n [factory-alias->gref (indt «IsSelfA'.axioms_») X150, gref-deps X150 X151, \n w-params.map X151 (factory-provides.base X150) X144]", "goal_id": 1513 } ], @@ -95069,13 +92038,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -95166,13 +92133,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -95206,13 +92171,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -95246,13 +92209,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -95267,13 +92228,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -95573,13 +92532,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -95598,8 +92555,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -95624,13 +92580,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -95645,8 +92599,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -95678,8 +92631,7 @@ "Inference", { "current_goal_id": 1513, - "current_goal_text": - "std.do!\n [factory-alias->gref (indt «IsSelfA'.axioms_») X150, gref-deps X150 X151, \n w-params.map X151 (factory-provides.base X150) X144]", + "current_goal_text": "std.do!\n [factory-alias->gref (indt «IsSelfA'.axioms_») X150, gref-deps X150 X151, \n w-params.map X151 (factory-provides.base X150) X144]", "current_goal_predicate": "std.do!", "failed_attempts": [], "successful_attempts": [ @@ -95688,8 +92640,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", "rule_loc": [ "File", { @@ -95714,14 +92665,12 @@ }, "siblings": [ { - "goal_text": - "factory-alias->gref (indt «IsSelfA'.axioms_») X150", + "goal_text": "factory-alias->gref (indt «IsSelfA'.axioms_») X150", "goal_id": 1514 }, { "goal_text": "!", "goal_id": 1515 }, { - "goal_text": - "std.do!\n [gref-deps X150 X151, w-params.map X151 (factory-provides.base X150) X144]", + "goal_text": "std.do!\n [gref-deps X150 X151, w-params.map X151 (factory-provides.base X150) X144]", "goal_id": 1516 } ], @@ -95753,13 +92702,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -95850,13 +92797,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -95890,13 +92835,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -95930,13 +92873,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -95951,13 +92892,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -96257,13 +93196,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -96282,8 +93219,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -96308,13 +93244,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -96329,8 +93263,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -96362,8 +93295,7 @@ "Inference", { "current_goal_id": 1514, - "current_goal_text": - "factory-alias->gref (indt «IsSelfA'.axioms_») X150", + "current_goal_text": "factory-alias->gref (indt «IsSelfA'.axioms_») X150", "current_goal_predicate": "factory-alias->gref", "failed_attempts": [], "successful_attempts": [ @@ -96372,13 +93304,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-alias->gref A0 A1) :- (phant-abbrev A1 A0 _), (!).", + "rule_text": "(factory-alias->gref A0 A1) :- (phant-abbrev A1 A0 _), (!).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 74, "column": 0, "character": 2385 @@ -96393,8 +93323,7 @@ }, "siblings": [ { - "goal_text": - "phant-abbrev X150 (indt «IsSelfA'.axioms_») _", + "goal_text": "phant-abbrev X150 (indt «IsSelfA'.axioms_») _", "goal_id": 1517 }, { "goal_text": "!", "goal_id": 1518 } @@ -96408,13 +93337,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-alias->gref A0 A1) :- (phant-abbrev A1 A0 _), (!).", + "rule_text": "(factory-alias->gref A0 A1) :- (phant-abbrev A1 A0 _), (!).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 74, "column": 0, "character": 2385 @@ -96448,13 +93375,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -96545,13 +93470,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -96585,13 +93508,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -96625,13 +93546,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -96646,13 +93565,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -96952,13 +93869,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -96977,8 +93892,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -97003,13 +93917,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -97024,8 +93936,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -97057,16 +93968,14 @@ "Inference", { "current_goal_id": 1517, - "current_goal_text": - "phant-abbrev X150 (indt «IsSelfA'.axioms_») _", + "current_goal_text": "phant-abbrev X150 (indt «IsSelfA'.axioms_») _", "current_goal_predicate": "phant-abbrev", "failed_attempts": [ { "rule": [ "UserRule", { - "rule_text": - "(phant-abbrev (indt «HasA.axioms_») (const «HasA.phant_axioms») \n «interleave_context.HasA.axioms») :- .", + "rule_text": "(phant-abbrev (indt «HasA.axioms_») (const «HasA.phant_axioms») \n «interleave_context.HasA.axioms») :- .", "rule_loc": [ "File", { @@ -97090,8 +93999,7 @@ "rule": [ "UserRule", { - "rule_text": - "(phant-abbrev (indc «HasA.Axioms_») (const «HasA.phant_Build») \n «interleave_context.HasA.Build») :- .", + "rule_text": "(phant-abbrev (indc «HasA.Axioms_») (const «HasA.phant_Build») \n «interleave_context.HasA.Build») :- .", "rule_loc": [ "File", { @@ -97115,8 +94023,7 @@ "rule": [ "UserRule", { - "rule_text": - "(phant-abbrev (indt «HasB.axioms_») (const «HasB.phant_axioms») \n «interleave_context.HasB.axioms») :- .", + "rule_text": "(phant-abbrev (indt «HasB.axioms_») (const «HasB.phant_axioms») \n «interleave_context.HasB.axioms») :- .", "rule_loc": [ "File", { @@ -97140,8 +94047,7 @@ "rule": [ "UserRule", { - "rule_text": - "(phant-abbrev (indc «HasB.Axioms_») (const «HasB.phant_Build») \n «interleave_context.HasB.Build») :- .", + "rule_text": "(phant-abbrev (indc «HasB.Axioms_») (const «HasB.phant_Build») \n «interleave_context.HasB.Build») :- .", "rule_loc": [ "File", { @@ -97165,8 +94071,7 @@ "rule": [ "UserRule", { - "rule_text": - "(phant-abbrev (indt «IsSelfA.axioms_») (const «IsSelfA.phant_axioms») \n «interleave_context.IsSelfA.axioms») :- .", + "rule_text": "(phant-abbrev (indt «IsSelfA.axioms_») (const «IsSelfA.phant_axioms») \n «interleave_context.IsSelfA.axioms») :- .", "rule_loc": [ "File", { @@ -97190,8 +94095,7 @@ "rule": [ "UserRule", { - "rule_text": - "(phant-abbrev (indc «IsSelfA.Axioms_») (const «IsSelfA.phant_Build») \n «interleave_context.IsSelfA.Build») :- .", + "rule_text": "(phant-abbrev (indc «IsSelfA.Axioms_») (const «IsSelfA.phant_Build») \n «interleave_context.IsSelfA.Build») :- .", "rule_loc": [ "File", { @@ -97215,8 +94119,7 @@ "rule": [ "UserRule", { - "rule_text": - "(phant-abbrev (indt «IsSelfA'.axioms_») (const «IsSelfA'.phant_axioms») \n «interleave_context.IsSelfA'.axioms») :- .", + "rule_text": "(phant-abbrev (indt «IsSelfA'.axioms_») (const «IsSelfA'.phant_axioms») \n «interleave_context.IsSelfA'.axioms») :- .", "rule_loc": [ "File", { @@ -97240,8 +94143,7 @@ "rule": [ "UserRule", { - "rule_text": - "(phant-abbrev (indc «IsSelfA'.Axioms_») (const «IsSelfA'.phant_Build») \n «interleave_context.IsSelfA'.Build») :- .", + "rule_text": "(phant-abbrev (indc «IsSelfA'.Axioms_») (const «IsSelfA'.phant_Build») \n «interleave_context.IsSelfA'.Build») :- .", "rule_loc": [ "File", { @@ -97269,8 +94171,7 @@ "rule": [ "UserRule", { - "rule_text": - "(phant-abbrev (indt «HasA.axioms_») (const «HasA.phant_axioms») \n «interleave_context.HasA.axioms») :- .", + "rule_text": "(phant-abbrev (indt «HasA.axioms_») (const «HasA.phant_axioms») \n «interleave_context.HasA.axioms») :- .", "rule_loc": [ "File", { @@ -97289,13 +94190,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-alias->gref A0 A1) :- (phant-abbrev A1 A0 _), (!).", + "rule_text": "(factory-alias->gref A0 A1) :- (phant-abbrev A1 A0 _), (!).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 74, "column": 0, "character": 2385 @@ -97329,13 +94228,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -97426,13 +94323,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -97466,13 +94361,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -97506,13 +94399,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -97527,13 +94418,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -97833,13 +94722,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -97858,8 +94745,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -97884,13 +94770,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -97905,8 +94789,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -97938,8 +94821,7 @@ "Inference", { "current_goal_id": 1514, - "current_goal_text": - "factory-alias->gref (indt «IsSelfA'.axioms_») X150", + "current_goal_text": "factory-alias->gref (indt «IsSelfA'.axioms_») X150", "current_goal_predicate": "factory-alias->gref", "failed_attempts": [], "successful_attempts": [ @@ -97948,13 +94830,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-alias->gref A0 A0) :- (phant-abbrev A0 _ _), (!).", + "rule_text": "(factory-alias->gref A0 A0) :- (phant-abbrev A0 _ _), (!).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 75, "column": 0, "character": 2443 @@ -97983,13 +94863,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-alias->gref A0 A0) :- (phant-abbrev A0 _ _), (!).", + "rule_text": "(factory-alias->gref A0 A0) :- (phant-abbrev A0 _ _), (!).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 75, "column": 0, "character": 2443 @@ -98023,13 +94901,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -98120,13 +94996,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -98160,13 +95034,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -98200,13 +95072,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -98221,13 +95091,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -98527,13 +95395,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -98552,8 +95418,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -98578,13 +95443,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -98599,8 +95462,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -98639,8 +95501,7 @@ "rule": [ "UserRule", { - "rule_text": - "(phant-abbrev (indt «HasB.axioms_») (const «HasB.phant_axioms») \n «interleave_context.HasB.axioms») :- .", + "rule_text": "(phant-abbrev (indt «HasB.axioms_») (const «HasB.phant_axioms») \n «interleave_context.HasB.axioms») :- .", "rule_loc": [ "File", { @@ -98663,8 +95524,7 @@ "rule": [ "UserRule", { - "rule_text": - "(phant-abbrev (indt «IsSelfA.axioms_») (const «IsSelfA.phant_axioms») \n «interleave_context.IsSelfA.axioms») :- .", + "rule_text": "(phant-abbrev (indt «IsSelfA.axioms_») (const «IsSelfA.phant_axioms») \n «interleave_context.IsSelfA.axioms») :- .", "rule_loc": [ "File", { @@ -98687,8 +95547,7 @@ "rule": [ "UserRule", { - "rule_text": - "(phant-abbrev (indt «IsSelfA'.axioms_») (const «IsSelfA'.phant_axioms») \n «interleave_context.IsSelfA'.axioms») :- .", + "rule_text": "(phant-abbrev (indt «IsSelfA'.axioms_») (const «IsSelfA'.phant_axioms») \n «interleave_context.IsSelfA'.axioms») :- .", "rule_loc": [ "File", { @@ -98709,8 +95568,7 @@ "rule": [ "UserRule", { - "rule_text": - "(phant-abbrev (indt «HasA.axioms_») (const «HasA.phant_axioms») \n «interleave_context.HasA.axioms») :- .", + "rule_text": "(phant-abbrev (indt «HasA.axioms_») (const «HasA.phant_axioms») \n «interleave_context.HasA.axioms») :- .", "rule_loc": [ "File", { @@ -98739,8 +95597,7 @@ "rule": [ "UserRule", { - "rule_text": - "(phant-abbrev (indt «HasA.axioms_») (const «HasA.phant_axioms») \n «interleave_context.HasA.axioms») :- .", + "rule_text": "(phant-abbrev (indt «HasA.axioms_») (const «HasA.phant_axioms») \n «interleave_context.HasA.axioms») :- .", "rule_loc": [ "File", { @@ -98759,13 +95616,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-alias->gref A0 A0) :- (phant-abbrev A0 _ _), (!).", + "rule_text": "(factory-alias->gref A0 A0) :- (phant-abbrev A0 _ _), (!).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 75, "column": 0, "character": 2443 @@ -98799,13 +95654,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -98896,13 +95749,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -98936,13 +95787,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -98976,13 +95825,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -98997,13 +95844,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -99303,13 +96148,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -99328,8 +96171,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -99354,13 +96196,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -99375,8 +96215,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -99411,13 +96250,11 @@ "cut_victims": [ { "cut_branch_for_goal": { - "goal_text": - "factory-alias->gref (indt «IsSelfA'.axioms_») X150", + "goal_text": "factory-alias->gref (indt «IsSelfA'.axioms_») X150", "goal_id": 1514 }, "cut_branch": { - "rule_text": - "(factory-alias->gref (indt «A.axioms_») (indt «A.axioms_»)) :- .", + "rule_text": "(factory-alias->gref (indt «A.axioms_») (indt «A.axioms_»)) :- .", "rule_loc": [ "File", { @@ -99431,13 +96268,11 @@ }, { "cut_branch_for_goal": { - "goal_text": - "factory-alias->gref (indt «IsSelfA'.axioms_») X150", + "goal_text": "factory-alias->gref (indt «IsSelfA'.axioms_») X150", "goal_id": 1514 }, "cut_branch": { - "rule_text": - "(factory-alias->gref (indt «B.axioms_») (indt «B.axioms_»)) :- .", + "rule_text": "(factory-alias->gref (indt «B.axioms_») (indt «B.axioms_»)) :- .", "rule_loc": [ "File", { @@ -99451,13 +96286,11 @@ }, { "cut_branch_for_goal": { - "goal_text": - "factory-alias->gref (indt «IsSelfA'.axioms_») X150", + "goal_text": "factory-alias->gref (indt «IsSelfA'.axioms_») X150", "goal_id": 1514 }, "cut_branch": { - "rule_text": - "(factory-alias->gref (indt «SelfA.axioms_») (indt «SelfA.axioms_»)) :- .", + "rule_text": "(factory-alias->gref (indt «SelfA.axioms_») (indt «SelfA.axioms_»)) :- .", "rule_loc": [ "File", { @@ -99487,8 +96320,7 @@ "Inference", { "current_goal_id": 1516, - "current_goal_text": - "std.do!\n [gref-deps (indt «IsSelfA'.axioms_») X151, \n w-params.map X151 (factory-provides.base (indt «IsSelfA'.axioms_»)) X144]", + "current_goal_text": "std.do!\n [gref-deps (indt «IsSelfA'.axioms_») X151, \n w-params.map X151 (factory-provides.base (indt «IsSelfA'.axioms_»)) X144]", "current_goal_predicate": "std.do!", "failed_attempts": [], "successful_attempts": [ @@ -99497,8 +96329,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", "rule_loc": [ "File", { @@ -99528,8 +96359,7 @@ }, { "goal_text": "!", "goal_id": 1522 }, { - "goal_text": - "std.do!\n [w-params.map X151 (factory-provides.base (indt «IsSelfA'.axioms_»)) X144]", + "goal_text": "std.do!\n [w-params.map X151 (factory-provides.base (indt «IsSelfA'.axioms_»)) X144]", "goal_id": 1523 } ], @@ -99580,13 +96410,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -99677,13 +96505,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -99717,13 +96543,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -99757,13 +96581,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -99778,13 +96600,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -100084,13 +96904,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -100109,8 +96927,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -100135,13 +96952,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -100156,8 +96971,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -100198,8 +97012,7 @@ "rule": [ "UserRule", { - "rule_text": - "(gref-deps (indt «IsSelfA'.axioms_») \n (w-params.nil TheType (sort (typ «interleave_context.382»)) (c0 \\ []))) :- .", + "rule_text": "(gref-deps (indt «IsSelfA'.axioms_») \n (w-params.nil TheType (sort (typ «interleave_context.382»)) (c0 \\ []))) :- .", "rule_loc": [ "File", { @@ -100228,8 +97041,7 @@ "rule": [ "UserRule", { - "rule_text": - "(gref-deps (indt «IsSelfA'.axioms_») \n (w-params.nil TheType (sort (typ «interleave_context.382»)) (c0 \\ []))) :- .", + "rule_text": "(gref-deps (indt «IsSelfA'.axioms_») \n (w-params.nil TheType (sort (typ «interleave_context.382»)) (c0 \\ []))) :- .", "rule_loc": [ "File", { @@ -100286,13 +97098,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -100383,13 +97193,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -100423,13 +97231,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -100463,13 +97269,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -100484,13 +97288,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -100790,13 +97592,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -100815,8 +97615,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -100841,13 +97640,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -100862,8 +97659,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -100901,8 +97697,7 @@ "Inference", { "current_goal_id": 1523, - "current_goal_text": - "std.do!\n [w-params.map\n (w-params.nil TheType (sort (typ «interleave_context.382»)) c0 \\ []) \n (factory-provides.base (indt «IsSelfA'.axioms_»)) X144]", + "current_goal_text": "std.do!\n [w-params.map\n (w-params.nil TheType (sort (typ «interleave_context.382»)) c0 \\ []) \n (factory-provides.base (indt «IsSelfA'.axioms_»)) X144]", "current_goal_predicate": "std.do!", "failed_attempts": [], "successful_attempts": [ @@ -100911,8 +97706,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", "rule_loc": [ "File", { @@ -100934,8 +97728,7 @@ }, "siblings": [ { - "goal_text": - "w-params.map\n (w-params.nil TheType (sort (typ «interleave_context.382»)) c0 \\ []) \n (factory-provides.base (indt «IsSelfA'.axioms_»)) X144", + "goal_text": "w-params.map\n (w-params.nil TheType (sort (typ «interleave_context.382»)) c0 \\ []) \n (factory-provides.base (indt «IsSelfA'.axioms_»)) X144", "goal_id": 1524 }, { "goal_text": "!", "goal_id": 1525 }, @@ -101007,13 +97800,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -101104,13 +97895,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -101144,13 +97933,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -101184,13 +97971,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -101205,13 +97990,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -101511,13 +98294,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -101536,8 +98317,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -101562,13 +98342,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -101583,8 +98361,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -101616,8 +98393,7 @@ "Inference", { "current_goal_id": 1524, - "current_goal_text": - "w-params.map\n (w-params.nil TheType (sort (typ «interleave_context.382»)) c0 \\ []) \n (factory-provides.base (indt «IsSelfA'.axioms_»)) X144", + "current_goal_text": "w-params.map\n (w-params.nil TheType (sort (typ «interleave_context.382»)) c0 \\ []) \n (factory-provides.base (indt «IsSelfA'.axioms_»)) X144", "current_goal_predicate": "w-params.map", "failed_attempts": [], "successful_attempts": [ @@ -101626,13 +98402,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -101654,8 +98428,7 @@ }, "siblings": [ { - "goal_text": - "w-params.then\n (w-params.nil TheType (sort (typ «interleave_context.382»)) c0 \\ []) \n mk-w-params.cons-name mk-w-params.nil-name \n (factory-provides.base (indt «IsSelfA'.axioms_»)) X144", + "goal_text": "w-params.then\n (w-params.nil TheType (sort (typ «interleave_context.382»)) c0 \\ []) \n mk-w-params.cons-name mk-w-params.nil-name \n (factory-provides.base (indt «IsSelfA'.axioms_»)) X144", "goal_id": 1527 } ], @@ -101668,13 +98441,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -101746,13 +98517,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -101843,13 +98612,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -101883,13 +98650,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -101923,13 +98688,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -101944,13 +98707,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -102250,13 +99011,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -102275,8 +99034,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -102301,13 +99059,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -102322,8 +99078,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -102355,8 +99110,7 @@ "Inference", { "current_goal_id": 1527, - "current_goal_text": - "w-params.then\n (w-params.nil TheType (sort (typ «interleave_context.382»)) c0 \\ []) \n mk-w-params.cons-name mk-w-params.nil-name \n (factory-provides.base (indt «IsSelfA'.axioms_»)) X144", + "current_goal_text": "w-params.then\n (w-params.nil TheType (sort (typ «interleave_context.382»)) c0 \\ []) \n mk-w-params.cons-name mk-w-params.nil-name \n (factory-provides.base (indt «IsSelfA'.axioms_»)) X144", "current_goal_predicate": "w-params.then", "failed_attempts": [], "successful_attempts": [ @@ -102365,13 +99119,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -102395,8 +99147,7 @@ }, "siblings": [ { - "goal_text": - "w-params.fold\n (w-params.nil TheType (sort (typ «interleave_context.382»)) c0 \\ []) \n mk-w-params.cons-name (c0 \\ c1 \\ c2 \\ c3 \\ c4 \\\n sigma c5 \\\n pi c6 \\\n decl c6 c1 c2 =>\n factory-provides.base (indt «IsSelfA'.axioms_») c0 c6 (c3 c6) (c5 c6) ,\n mk-w-params.nil-name c1 c2 c5 c4) X144", + "goal_text": "w-params.fold\n (w-params.nil TheType (sort (typ «interleave_context.382»)) c0 \\ []) \n mk-w-params.cons-name (c0 \\ c1 \\ c2 \\ c3 \\ c4 \\\n sigma c5 \\\n pi c6 \\\n decl c6 c1 c2 =>\n factory-provides.base (indt «IsSelfA'.axioms_») c0 c6 (c3 c6) (c5 c6) ,\n mk-w-params.nil-name c1 c2 c5 c4) X144", "goal_id": 1528 } ], @@ -102409,13 +99160,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -102430,13 +99179,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -102508,13 +99255,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -102605,13 +99350,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -102645,13 +99388,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -102685,13 +99426,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -102706,13 +99445,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -103012,13 +99749,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -103037,8 +99772,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -103063,13 +99797,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -103084,8 +99816,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -103117,8 +99848,7 @@ "Inference", { "current_goal_id": 1528, - "current_goal_text": - "w-params.fold\n (w-params.nil TheType (sort (typ «interleave_context.382»)) c0 \\ []) \n mk-w-params.cons-name (c0 \\ c1 \\ c2 \\ c3 \\ c4 \\\n sigma c5 \\\n pi c6 \\\n decl c6 c1 c2 =>\n factory-provides.base (indt «IsSelfA'.axioms_») c0 c6 (c3 c6) (c5 c6) ,\n mk-w-params.nil-name c1 c2 c5 c4) X144", + "current_goal_text": "w-params.fold\n (w-params.nil TheType (sort (typ «interleave_context.382»)) c0 \\ []) \n mk-w-params.cons-name (c0 \\ c1 \\ c2 \\ c3 \\ c4 \\\n sigma c5 \\\n pi c6 \\\n decl c6 c1 c2 =>\n factory-provides.base (indt «IsSelfA'.axioms_») c0 c6 (c3 c6) (c5 c6) ,\n mk-w-params.nil-name c1 c2 c5 c4) X144", "current_goal_predicate": "w-params.fold", "failed_attempts": [], "successful_attempts": [ @@ -103127,13 +99857,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -103156,8 +99884,7 @@ }, "siblings": [ { - "goal_text": - "w-params.fold.params\n (w-params.nil TheType (sort (typ «interleave_context.382»)) c0 \\ []) \n mk-w-params.cons-name (c0 \\ c1 \\ c2 \\ c3 \\ c4 \\\n sigma c5 \\\n pi c6 \\\n decl c6 c1 c2 =>\n factory-provides.base (indt «IsSelfA'.axioms_») c0 c6 (c3 c6) (c5 c6) ,\n mk-w-params.nil-name c1 c2 c5 c4) [] X144", + "goal_text": "w-params.fold.params\n (w-params.nil TheType (sort (typ «interleave_context.382»)) c0 \\ []) \n mk-w-params.cons-name (c0 \\ c1 \\ c2 \\ c3 \\ c4 \\\n sigma c5 \\\n pi c6 \\\n decl c6 c1 c2 =>\n factory-provides.base (indt «IsSelfA'.axioms_») c0 c6 (c3 c6) (c5 c6) ,\n mk-w-params.nil-name c1 c2 c5 c4) [] X144", "goal_id": 1529 } ], @@ -103170,13 +99897,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -103191,13 +99916,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -103212,13 +99935,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -103290,13 +100011,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -103387,13 +100106,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -103427,13 +100144,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -103467,13 +100182,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -103488,13 +100201,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -103794,13 +100505,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -103819,8 +100528,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -103845,13 +100553,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -103866,8 +100572,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -103899,8 +100604,7 @@ "Inference", { "current_goal_id": 1529, - "current_goal_text": - "w-params.fold.params\n (w-params.nil TheType (sort (typ «interleave_context.382»)) c0 \\ []) \n mk-w-params.cons-name (c0 \\ c1 \\ c2 \\ c3 \\ c4 \\\n sigma c5 \\\n pi c6 \\\n decl c6 c1 c2 =>\n factory-provides.base (indt «IsSelfA'.axioms_») c0 c6 (c3 c6) (c5 c6) ,\n mk-w-params.nil-name c1 c2 c5 c4) [] X144", + "current_goal_text": "w-params.fold.params\n (w-params.nil TheType (sort (typ «interleave_context.382»)) c0 \\ []) \n mk-w-params.cons-name (c0 \\ c1 \\ c2 \\ c3 \\ c4 \\\n sigma c5 \\\n pi c6 \\\n decl c6 c1 c2 =>\n factory-provides.base (indt «IsSelfA'.axioms_») c0 c6 (c3 c6) (c5 c6) ,\n mk-w-params.nil-name c1 c2 c5 c4) [] X144", "current_goal_predicate": "w-params.fold.params", "failed_attempts": [], "successful_attempts": [ @@ -103909,13 +100613,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -103938,8 +100640,7 @@ "siblings": [ { "goal_text": "!", "goal_id": 1530 }, { - "goal_text": - "std.do!\n [coq.id->name TheType X152, std.rev [] X153, \n sigma c0 \\\n pi c1 \\\n decl c1 X152 (sort (typ «interleave_context.382»)) =>\n factory-provides.base (indt «IsSelfA'.axioms_») X153 c1 [] (c0 c1) ,\n mk-w-params.nil-name X152 (sort (typ «interleave_context.382»)) c0 X144]", + "goal_text": "std.do!\n [coq.id->name TheType X152, std.rev [] X153, \n sigma c0 \\\n pi c1 \\\n decl c1 X152 (sort (typ «interleave_context.382»)) =>\n factory-provides.base (indt «IsSelfA'.axioms_») X153 c1 [] (c0 c1) ,\n mk-w-params.nil-name X152 (sort (typ «interleave_context.382»)) c0 X144]", "goal_id": 1531 } ], @@ -103952,13 +100653,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -103973,13 +100672,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -103994,13 +100691,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -104015,13 +100710,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -104093,13 +100786,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -104190,13 +100881,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -104230,13 +100919,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -104270,13 +100957,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -104291,13 +100976,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -104597,13 +101280,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -104622,8 +101303,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -104648,13 +101328,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -104669,8 +101347,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -104708,8 +101385,7 @@ "Inference", { "current_goal_id": 1531, - "current_goal_text": - "std.do!\n [coq.id->name TheType X152, std.rev [] X153, \n sigma c0 \\\n pi c1 \\\n decl c1 X152 (sort (typ «interleave_context.382»)) =>\n factory-provides.base (indt «IsSelfA'.axioms_») X153 c1 [] (c0 c1) ,\n mk-w-params.nil-name X152 (sort (typ «interleave_context.382»)) c0 X144]", + "current_goal_text": "std.do!\n [coq.id->name TheType X152, std.rev [] X153, \n sigma c0 \\\n pi c1 \\\n decl c1 X152 (sort (typ «interleave_context.382»)) =>\n factory-provides.base (indt «IsSelfA'.axioms_») X153 c1 [] (c0 c1) ,\n mk-w-params.nil-name X152 (sort (typ «interleave_context.382»)) c0 X144]", "current_goal_predicate": "std.do!", "failed_attempts": [], "successful_attempts": [ @@ -104718,8 +101394,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", "rule_loc": [ "File", { @@ -104743,8 +101418,7 @@ { "goal_text": "coq.id->name TheType X152", "goal_id": 1532 }, { "goal_text": "!", "goal_id": 1533 }, { - "goal_text": - "std.do!\n [std.rev [] X153, \n sigma c0 \\\n pi c1 \\\n decl c1 X152 (sort (typ «interleave_context.382»)) =>\n factory-provides.base (indt «IsSelfA'.axioms_») X153 c1 [] (c0 c1) ,\n mk-w-params.nil-name X152 (sort (typ «interleave_context.382»)) c0 X144]", + "goal_text": "std.do!\n [std.rev [] X153, \n sigma c0 \\\n pi c1 \\\n decl c1 X152 (sort (typ «interleave_context.382»)) =>\n factory-provides.base (indt «IsSelfA'.axioms_») X153 c1 [] (c0 c1) ,\n mk-w-params.nil-name X152 (sort (typ «interleave_context.382»)) c0 X144]", "goal_id": 1534 } ], @@ -104776,13 +101450,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -104797,13 +101469,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -104818,13 +101488,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -104839,13 +101507,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -104917,13 +101583,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -105014,13 +101678,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -105054,13 +101716,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -105094,13 +101754,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -105115,13 +101773,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -105421,13 +102077,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -105446,8 +102100,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -105472,13 +102125,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -105493,8 +102144,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -105535,8 +102185,7 @@ "rule": [ "UserRule", { - "rule_text": - "(coq.id->name A0 A1) :- (coq.string->name A0 A1).", + "rule_text": "(coq.id->name A0 A1) :- (coq.string->name A0 A1).", "rule_loc": [ "File", { @@ -105549,8 +102198,7 @@ } ], "events": [ - [ "Assign", "A0 := TheType" ], - [ "Assign", "A1 := X152" ] + [ "Assign", "A0 := TheType" ], [ "Assign", "A1 := X152" ] ] }, "siblings": [ @@ -105568,8 +102216,7 @@ "rule": [ "UserRule", { - "rule_text": - "(coq.id->name A0 A1) :- (coq.string->name A0 A1).", + "rule_text": "(coq.id->name A0 A1) :- (coq.string->name A0 A1).", "rule_loc": [ "File", { @@ -105607,13 +102254,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -105628,13 +102273,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -105649,13 +102292,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -105670,13 +102311,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -105748,13 +102387,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -105845,13 +102482,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -105885,13 +102520,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -105925,13 +102558,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -105946,13 +102577,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -106252,13 +102881,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -106277,8 +102904,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -106303,13 +102929,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -106324,8 +102948,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -106383,8 +103006,7 @@ "rule": [ "UserRule", { - "rule_text": - "(coq.id->name A0 A1) :- (coq.string->name A0 A1).", + "rule_text": "(coq.id->name A0 A1) :- (coq.string->name A0 A1).", "rule_loc": [ "File", { @@ -106422,13 +103044,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -106443,13 +103063,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -106464,13 +103082,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -106485,13 +103101,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -106563,13 +103177,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -106660,13 +103272,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -106700,13 +103310,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -106740,13 +103348,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -106761,13 +103367,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -107067,13 +103671,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -107092,8 +103694,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -107118,13 +103719,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -107139,8 +103738,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -107201,8 +103799,7 @@ "rule": [ "UserRule", { - "rule_text": - "(coq.id->name A0 A1) :- (coq.string->name A0 A1).", + "rule_text": "(coq.id->name A0 A1) :- (coq.string->name A0 A1).", "rule_loc": [ "File", { @@ -107240,13 +103837,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -107261,13 +103856,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -107282,13 +103875,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -107303,13 +103894,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -107381,13 +103970,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -107478,13 +104065,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -107518,13 +104103,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -107558,13 +104141,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -107579,13 +104160,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -107885,13 +104464,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -107910,8 +104487,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -107936,13 +104512,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -107957,8 +104531,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -107996,8 +104569,7 @@ "Inference", { "current_goal_id": 1534, - "current_goal_text": - "std.do!\n [std.rev [] X153, \n sigma c0 \\\n pi c1 \\\n decl c1 `TheType` (sort (typ «interleave_context.382»)) =>\n factory-provides.base (indt «IsSelfA'.axioms_») X153 c1 [] (c0 c1) ,\n mk-w-params.nil-name `TheType` (sort (typ «interleave_context.382»)) \n c0 X144]", + "current_goal_text": "std.do!\n [std.rev [] X153, \n sigma c0 \\\n pi c1 \\\n decl c1 `TheType` (sort (typ «interleave_context.382»)) =>\n factory-provides.base (indt «IsSelfA'.axioms_») X153 c1 [] (c0 c1) ,\n mk-w-params.nil-name `TheType` (sort (typ «interleave_context.382»)) \n c0 X144]", "current_goal_predicate": "std.do!", "failed_attempts": [], "successful_attempts": [ @@ -108006,8 +104578,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", "rule_loc": [ "File", { @@ -108031,8 +104602,7 @@ { "goal_text": "std.rev [] X153", "goal_id": 1537 }, { "goal_text": "!", "goal_id": 1538 }, { - "goal_text": - "std.do!\n [sigma c0 \\\n pi c1 \\\n decl c1 `TheType` (sort (typ «interleave_context.382»)) =>\n factory-provides.base (indt «IsSelfA'.axioms_») X153 c1 [] (c0 c1) ,\n mk-w-params.nil-name `TheType` (sort (typ «interleave_context.382»)) \n c0 X144]", + "goal_text": "std.do!\n [sigma c0 \\\n pi c1 \\\n decl c1 `TheType` (sort (typ «interleave_context.382»)) =>\n factory-provides.base (indt «IsSelfA'.axioms_») X153 c1 [] (c0 c1) ,\n mk-w-params.nil-name `TheType` (sort (typ «interleave_context.382»)) \n c0 X144]", "goal_id": 1539 } ], @@ -108083,13 +104653,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -108104,13 +104672,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -108125,13 +104691,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -108146,13 +104710,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -108224,13 +104786,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -108321,13 +104881,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -108361,13 +104919,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -108401,13 +104957,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -108422,13 +104976,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -108728,13 +105280,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -108753,8 +105303,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -108779,13 +105328,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -108800,8 +105347,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -108855,8 +105401,7 @@ } ], "events": [ - [ "Assign", "A0 := []" ], - [ "Assign", "A1 := X153" ] + [ "Assign", "A0 := []" ], [ "Assign", "A1 := X153" ] ] }, "siblings": [ @@ -108928,13 +105473,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -108949,13 +105492,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -108970,13 +105511,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -108991,13 +105530,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -109069,13 +105606,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -109166,13 +105701,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -109206,13 +105739,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -109246,13 +105777,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -109267,13 +105796,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -109573,13 +106100,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -109598,8 +106123,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -109624,13 +106148,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -109645,8 +106167,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -109700,8 +106221,7 @@ } ], "events": [ - [ "Assign", "A0 := []" ], - [ "Assign", "X153 := []" ] + [ "Assign", "A0 := []" ], [ "Assign", "X153 := []" ] ] }, "siblings": [], @@ -109790,13 +106310,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -109811,13 +106329,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -109832,13 +106348,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -109853,13 +106367,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -109931,13 +106443,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -110028,13 +106538,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -110068,13 +106576,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -110108,13 +106614,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -110129,13 +106633,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -110435,13 +106937,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -110460,8 +106960,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -110486,13 +106985,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -110507,8 +107004,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -110546,8 +107042,7 @@ "Inference", { "current_goal_id": 1539, - "current_goal_text": - "std.do!\n [sigma c0 \\\n pi c1 \\\n decl c1 `TheType` (sort (typ «interleave_context.382»)) =>\n factory-provides.base (indt «IsSelfA'.axioms_») [] c1 [] (c0 c1) ,\n mk-w-params.nil-name `TheType` (sort (typ «interleave_context.382»)) \n c0 X144]", + "current_goal_text": "std.do!\n [sigma c0 \\\n pi c1 \\\n decl c1 `TheType` (sort (typ «interleave_context.382»)) =>\n factory-provides.base (indt «IsSelfA'.axioms_») [] c1 [] (c0 c1) ,\n mk-w-params.nil-name `TheType` (sort (typ «interleave_context.382»)) \n c0 X144]", "current_goal_predicate": "std.do!", "failed_attempts": [], "successful_attempts": [ @@ -110556,8 +107051,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", "rule_loc": [ "File", { @@ -110579,8 +107073,7 @@ }, "siblings": [ { - "goal_text": - "sigma c0 \\\n pi c1 \\\n decl c1 `TheType` (sort (typ «interleave_context.382»)) =>\n factory-provides.base (indt «IsSelfA'.axioms_») [] c1 [] (c0 c1) ,\n mk-w-params.nil-name `TheType` (sort (typ «interleave_context.382»)) c0 \n X144", + "goal_text": "sigma c0 \\\n pi c1 \\\n decl c1 `TheType` (sort (typ «interleave_context.382»)) =>\n factory-provides.base (indt «IsSelfA'.axioms_») [] c1 [] (c0 c1) ,\n mk-w-params.nil-name `TheType` (sort (typ «interleave_context.382»)) c0 \n X144", "goal_id": 1541 }, { "goal_text": "!", "goal_id": 1542 }, @@ -110652,13 +107145,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -110673,13 +107164,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -110694,13 +107183,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -110715,13 +107202,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -110793,13 +107278,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -110890,13 +107373,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -110930,13 +107411,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -110970,13 +107449,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -110991,13 +107468,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -111297,13 +107772,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -111322,8 +107795,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -111348,13 +107820,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -111369,8 +107839,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -111402,8 +107871,7 @@ "Inference", { "current_goal_id": 1541, - "current_goal_text": - "sigma c0 \\\n pi c1 \\\n decl c1 `TheType` (sort (typ «interleave_context.382»)) =>\n factory-provides.base (indt «IsSelfA'.axioms_») [] c1 [] (c0 c1) ,\n mk-w-params.nil-name `TheType` (sort (typ «interleave_context.382»)) c0 \n X144", + "current_goal_text": "sigma c0 \\\n pi c1 \\\n decl c1 `TheType` (sort (typ «interleave_context.382»)) =>\n factory-provides.base (indt «IsSelfA'.axioms_») [] c1 [] (c0 c1) ,\n mk-w-params.nil-name `TheType` (sort (typ «interleave_context.382»)) c0 \n X144", "current_goal_predicate": "sigma", "failed_attempts": [], "successful_attempts": [ @@ -111414,8 +107882,7 @@ }, "siblings": [ { - "goal_text": - "pi c0 \\\n decl c0 `TheType` (sort (typ «interleave_context.382»)) =>\n factory-provides.base (indt «IsSelfA'.axioms_») [] c0 [] (X154 c0) ,\n mk-w-params.nil-name `TheType` (sort (typ «interleave_context.382»)) X154 \n X144", + "goal_text": "pi c0 \\\n decl c0 `TheType` (sort (typ «interleave_context.382»)) =>\n factory-provides.base (indt «IsSelfA'.axioms_») [] c0 [] (X154 c0) ,\n mk-w-params.nil-name `TheType` (sort (typ «interleave_context.382»)) X154 \n X144", "goal_id": 1544 } ], @@ -111490,13 +107957,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -111511,13 +107976,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -111532,13 +107995,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -111553,13 +108014,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -111631,13 +108090,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -111728,13 +108185,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -111768,13 +108223,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -111808,13 +108261,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -111829,13 +108280,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -112135,13 +108584,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -112160,8 +108607,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -112186,13 +108632,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -112207,8 +108651,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -112240,8 +108683,7 @@ "Inference", { "current_goal_id": 1544, - "current_goal_text": - "pi c0 \\\n decl c0 `TheType` (sort (typ «interleave_context.382»)) =>\n factory-provides.base (indt «IsSelfA'.axioms_») [] c0 [] (X154 c0) ,\n mk-w-params.nil-name `TheType` (sort (typ «interleave_context.382»)) X154 \n X144", + "current_goal_text": "pi c0 \\\n decl c0 `TheType` (sort (typ «interleave_context.382»)) =>\n factory-provides.base (indt «IsSelfA'.axioms_») [] c0 [] (X154 c0) ,\n mk-w-params.nil-name `TheType` (sort (typ «interleave_context.382»)) X154 \n X144", "current_goal_predicate": ",", "failed_attempts": [], "successful_attempts": [ @@ -112252,13 +108694,11 @@ }, "siblings": [ { - "goal_text": - "pi c0 \\\n decl c0 `TheType` (sort (typ «interleave_context.382»)) =>\n factory-provides.base (indt «IsSelfA'.axioms_») [] c0 [] (X154 c0)", + "goal_text": "pi c0 \\\n decl c0 `TheType` (sort (typ «interleave_context.382»)) =>\n factory-provides.base (indt «IsSelfA'.axioms_») [] c0 [] (X154 c0)", "goal_id": 1545 }, { - "goal_text": - "mk-w-params.nil-name `TheType` (sort (typ «interleave_context.382»)) X154 \n X144", + "goal_text": "mk-w-params.nil-name `TheType` (sort (typ «interleave_context.382»)) X154 \n X144", "goal_id": 1546 } ], @@ -112338,13 +108778,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -112359,13 +108797,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -112380,13 +108816,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -112401,13 +108835,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -112479,13 +108911,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -112576,13 +109006,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -112616,13 +109044,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -112656,13 +109082,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -112677,13 +109101,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -112983,13 +109405,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -113008,8 +109428,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -113034,13 +109453,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -113055,8 +109472,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -113088,8 +109504,7 @@ "Inference", { "current_goal_id": 1545, - "current_goal_text": - "pi c0 \\\n decl c0 `TheType` (sort (typ «interleave_context.382»)) =>\n factory-provides.base (indt «IsSelfA'.axioms_») [] c0 [] (X154 c0)", + "current_goal_text": "pi c0 \\\n decl c0 `TheType` (sort (typ «interleave_context.382»)) =>\n factory-provides.base (indt «IsSelfA'.axioms_») [] c0 [] (X154 c0)", "current_goal_predicate": "pi", "failed_attempts": [], "successful_attempts": [ @@ -113100,8 +109515,7 @@ }, "siblings": [ { - "goal_text": - "decl c0 `TheType` (sort (typ «interleave_context.382»)) =>\n factory-provides.base (indt «IsSelfA'.axioms_») [] c0 [] (X154 c0)", + "goal_text": "decl c0 `TheType` (sort (typ «interleave_context.382»)) =>\n factory-provides.base (indt «IsSelfA'.axioms_») [] c0 [] (X154 c0)", "goal_id": 1547 } ], @@ -113186,13 +109600,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -113207,13 +109619,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -113228,13 +109638,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -113249,13 +109657,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -113327,13 +109733,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -113424,13 +109828,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -113464,13 +109866,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -113504,13 +109904,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -113525,13 +109923,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -113831,13 +110227,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -113856,8 +110250,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -113882,13 +110275,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -113903,8 +110294,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -113936,8 +110326,7 @@ "Inference", { "current_goal_id": 1547, - "current_goal_text": - "decl c0 `TheType` (sort (typ «interleave_context.382»)) =>\n factory-provides.base (indt «IsSelfA'.axioms_») [] c0 [] (X154 c0)", + "current_goal_text": "decl c0 `TheType` (sort (typ «interleave_context.382»)) =>\n factory-provides.base (indt «IsSelfA'.axioms_») [] c0 [] (X154 c0)", "current_goal_predicate": "=>", "failed_attempts": [], "successful_attempts": [ @@ -113948,8 +110337,7 @@ }, "siblings": [ { - "goal_text": - "factory-provides.base (indt «IsSelfA'.axioms_») [] c0 [] (X154 c0)", + "goal_text": "factory-provides.base (indt «IsSelfA'.axioms_») [] c0 [] (X154 c0)", "goal_id": 1548 } ], @@ -114039,13 +110427,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -114060,13 +110446,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -114081,13 +110465,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -114102,13 +110484,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -114180,13 +110560,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -114277,13 +110655,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -114317,13 +110693,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -114357,13 +110731,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -114378,13 +110750,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -114684,13 +111054,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -114709,8 +111077,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -114735,13 +111102,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -114756,8 +111121,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -114789,8 +111153,7 @@ "Inference", { "current_goal_id": 1548, - "current_goal_text": - "factory-provides.base (indt «IsSelfA'.axioms_») [] c0 [] (X154 c0)", + "current_goal_text": "factory-provides.base (indt «IsSelfA'.axioms_») [] c0 [] (X154 c0)", "current_goal_predicate": "factory-provides.base", "failed_attempts": [], "successful_attempts": [ @@ -114799,13 +111162,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -114822,8 +111183,7 @@ }, "siblings": [ { - "goal_text": - "std.do!\n [std.findall (from (indt «IsSelfA'.axioms_») X155^1 X156^1) X157^1, \n std.map X157^1 from_mixin X158^1, std.map X157^1 from_builder X159^1, \n std.map2 X159^1 X158^1 (factory-provides.one [] c0) (X154 c0)]", + "goal_text": "std.do!\n [std.findall (from (indt «IsSelfA'.axioms_») X155^1 X156^1) X157^1, \n std.map X157^1 from_mixin X158^1, std.map X157^1 from_builder X159^1, \n std.map2 X159^1 X158^1 (factory-provides.one [] c0) (X154 c0)]", "goal_id": 1549 } ], @@ -114836,13 +111196,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -114934,13 +111292,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -114955,13 +111311,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -114976,13 +111330,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -114997,13 +111349,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -115075,13 +111425,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -115172,13 +111520,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -115212,13 +111558,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -115252,13 +111596,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -115273,13 +111615,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -115579,13 +111919,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -115604,8 +111942,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -115630,13 +111967,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -115651,8 +111986,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -115684,8 +112018,7 @@ "Inference", { "current_goal_id": 1549, - "current_goal_text": - "std.do!\n [std.findall (from (indt «IsSelfA'.axioms_») X155^1 X156^1) X157^1, \n std.map X157^1 from_mixin X158^1, std.map X157^1 from_builder X159^1, \n std.map2 X159^1 X158^1 (factory-provides.one [] c0) (X154 c0)]", + "current_goal_text": "std.do!\n [std.findall (from (indt «IsSelfA'.axioms_») X155^1 X156^1) X157^1, \n std.map X157^1 from_mixin X158^1, std.map X157^1 from_builder X159^1, \n std.map2 X159^1 X158^1 (factory-provides.one [] c0) (X154 c0)]", "current_goal_predicate": "std.do!", "failed_attempts": [], "successful_attempts": [ @@ -115694,8 +112027,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", "rule_loc": [ "File", { @@ -115720,14 +112052,12 @@ }, "siblings": [ { - "goal_text": - "std.findall (from (indt «IsSelfA'.axioms_») X155^1 X156^1) X157^1", + "goal_text": "std.findall (from (indt «IsSelfA'.axioms_») X155^1 X156^1) X157^1", "goal_id": 1550 }, { "goal_text": "!", "goal_id": 1551 }, { - "goal_text": - "std.do!\n [std.map X157^1 from_mixin X158^1, std.map X157^1 from_builder X159^1, \n std.map2 X159^1 X158^1 (factory-provides.one [] c0) (X154 c0)]", + "goal_text": "std.do!\n [std.map X157^1 from_mixin X158^1, std.map X157^1 from_builder X159^1, \n std.map2 X159^1 X158^1 (factory-provides.one [] c0) (X154 c0)]", "goal_id": 1552 } ], @@ -115759,13 +112089,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -115857,13 +112185,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -115878,13 +112204,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -115899,13 +112223,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -115920,13 +112242,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -115998,13 +112318,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -116095,13 +112413,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -116135,13 +112451,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -116175,13 +112489,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -116196,13 +112508,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -116502,13 +112812,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -116527,8 +112835,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -116553,13 +112860,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -116574,8 +112879,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -116607,8 +112911,7 @@ "Inference", { "current_goal_id": 1550, - "current_goal_text": - "std.findall (from (indt «IsSelfA'.axioms_») X155^1 X156^1) X157^1", + "current_goal_text": "std.findall (from (indt «IsSelfA'.axioms_») X155^1 X156^1) X157^1", "current_goal_predicate": "std.findall", "failed_attempts": [], "successful_attempts": [ @@ -116617,8 +112920,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.findall A0 A1) :- (findall_solutions A0 A1).", + "rule_text": "(std.findall A0 A1) :- (findall_solutions A0 A1).", "rule_loc": [ "File", { @@ -116640,8 +112942,7 @@ }, "siblings": [ { - "goal_text": - "findall_solutions (from (indt «IsSelfA'.axioms_») X155^1 X156^1) X157^1", + "goal_text": "findall_solutions (from (indt «IsSelfA'.axioms_») X155^1 X156^1) X157^1", "goal_id": 1553 } ], @@ -116654,8 +112955,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.findall A0 A1) :- (findall_solutions A0 A1).", + "rule_text": "(std.findall A0 A1) :- (findall_solutions A0 A1).", "rule_loc": [ "File", { @@ -116693,13 +112993,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -116791,13 +113089,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -116812,13 +113108,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -116833,13 +113127,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -116854,13 +113146,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -116932,13 +113222,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -117029,13 +113317,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -117069,13 +113355,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -117109,13 +113393,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -117130,13 +113412,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -117436,13 +113716,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -117461,8 +113739,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -117487,13 +113764,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -117508,8 +113783,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -117541,8 +113815,7 @@ "Findall", { "findall_goal_id": 1553, - "findall_goal_text": - "findall_solutions (from (indt «IsSelfA'.axioms_») X155^1 X156^1) X157^1", + "findall_goal_text": "findall_solutions (from (indt «IsSelfA'.axioms_») X155^1 X156^1) X157^1", "findall_cards": [ { "step_id": 0, @@ -117563,16 +113836,14 @@ "Inference", { "current_goal_id": 1555, - "current_goal_text": - "from (indt «IsSelfA'.axioms_») X0^1 X1^1", + "current_goal_text": "from (indt «IsSelfA'.axioms_») X0^1 X1^1", "current_goal_predicate": "from", "failed_attempts": [ { "rule": [ "UserRule", { - "rule_text": - "(from (indt «A.axioms_») (indt «HasA.axioms_») \n (const «A.interleave_context_HasA_mixin»)) :- .", + "rule_text": "(from (indt «A.axioms_») (indt «HasA.axioms_») \n (const «A.interleave_context_HasA_mixin»)) :- .", "rule_loc": [ "File", { @@ -117595,8 +113866,7 @@ "rule": [ "UserRule", { - "rule_text": - "(from (indt «HasB.axioms_») (indt «HasB.axioms_») \n (const «HasB.identity_builder»)) :- .", + "rule_text": "(from (indt «HasB.axioms_») (indt «HasB.axioms_») \n (const «HasB.identity_builder»)) :- .", "rule_loc": [ "File", { @@ -117619,8 +113889,7 @@ "rule": [ "UserRule", { - "rule_text": - "(from (indt «B.axioms_») (indt «HasB.axioms_») \n (const «B.interleave_context_HasB_mixin»)) :- .", + "rule_text": "(from (indt «B.axioms_») (indt «HasB.axioms_») \n (const «B.interleave_context_HasB_mixin»)) :- .", "rule_loc": [ "File", { @@ -117643,8 +113912,7 @@ "rule": [ "UserRule", { - "rule_text": - "(from (indt «IsSelfA.axioms_») (indt «IsSelfA.axioms_») \n (const «IsSelfA.identity_builder»)) :- .", + "rule_text": "(from (indt «IsSelfA.axioms_») (indt «IsSelfA.axioms_») \n (const «IsSelfA.identity_builder»)) :- .", "rule_loc": [ "File", { @@ -117667,8 +113935,7 @@ "rule": [ "UserRule", { - "rule_text": - "(from (indt «SelfA.axioms_») (indt «HasA.axioms_») \n (const «SelfA.interleave_context_HasA_mixin»)) :- .", + "rule_text": "(from (indt «SelfA.axioms_») (indt «HasA.axioms_») \n (const «SelfA.interleave_context_HasA_mixin»)) :- .", "rule_loc": [ "File", { @@ -117691,8 +113958,7 @@ "rule": [ "UserRule", { - "rule_text": - "(from (indt «SelfA.axioms_») (indt «HasB.axioms_») \n (const «SelfA.interleave_context_HasB_mixin»)) :- .", + "rule_text": "(from (indt «SelfA.axioms_») (indt «HasB.axioms_») \n (const «SelfA.interleave_context_HasB_mixin»)) :- .", "rule_loc": [ "File", { @@ -117715,8 +113981,7 @@ "rule": [ "UserRule", { - "rule_text": - "(from (indt «SelfA.axioms_») (indt «IsSelfA.axioms_») \n (const «SelfA.interleave_context_IsSelfA_mixin»)) :- .", + "rule_text": "(from (indt «SelfA.axioms_») (indt «IsSelfA.axioms_») \n (const «SelfA.interleave_context_IsSelfA_mixin»)) :- .", "rule_loc": [ "File", { @@ -117739,8 +114004,7 @@ "rule": [ "UserRule", { - "rule_text": - "(from (indt «IsSelfA'.axioms_») (indt «IsSelfA.axioms_») \n (const «Builders_18.HB_unnamed_factory_24»)) :- .", + "rule_text": "(from (indt «IsSelfA'.axioms_») (indt «IsSelfA.axioms_») \n (const «Builders_18.HB_unnamed_factory_24»)) :- .", "rule_loc": [ "File", { @@ -117767,8 +114031,7 @@ "rule": [ "UserRule", { - "rule_text": - "(from (indt «HasA.axioms_») (indt «HasA.axioms_») \n (const «HasA.identity_builder»)) :- .", + "rule_text": "(from (indt «HasA.axioms_») (indt «HasA.axioms_») \n (const «HasA.identity_builder»)) :- .", "rule_loc": [ "File", { @@ -117797,8 +114060,7 @@ "rule": [ "UserRule", { - "rule_text": - "(from (indt «HasA.axioms_») (indt «HasA.axioms_») \n (const «HasA.identity_builder»)) :- .", + "rule_text": "(from (indt «HasA.axioms_») (indt «HasA.axioms_») \n (const «HasA.identity_builder»)) :- .", "rule_loc": [ "File", { @@ -117825,8 +114087,7 @@ "Inference", { "current_goal_id": 1555, - "current_goal_text": - "from (indt «IsSelfA'.axioms_») X0^1 X1^1", + "current_goal_text": "from (indt «IsSelfA'.axioms_») X0^1 X1^1", "current_goal_predicate": "from", "failed_attempts": [], "successful_attempts": [ @@ -117835,8 +114096,7 @@ "rule": [ "UserRule", { - "rule_text": - "(from (indt «IsSelfA'.axioms_») (indt «HasB.axioms_») \n (const «Builders_18.HB_unnamed_factory_22»)) :- .", + "rule_text": "(from (indt «IsSelfA'.axioms_») (indt «HasB.axioms_») \n (const «Builders_18.HB_unnamed_factory_22»)) :- .", "rule_loc": [ "File", { @@ -117866,8 +114126,7 @@ "rule": [ "UserRule", { - "rule_text": - "(from (indt «IsSelfA'.axioms_») (indt «HasB.axioms_») \n (const «Builders_18.HB_unnamed_factory_22»)) :- .", + "rule_text": "(from (indt «IsSelfA'.axioms_») (indt «HasB.axioms_») \n (const «Builders_18.HB_unnamed_factory_22»)) :- .", "rule_loc": [ "File", { @@ -117894,8 +114153,7 @@ "Inference", { "current_goal_id": 1555, - "current_goal_text": - "from (indt «IsSelfA'.axioms_») X0^1 X1^1", + "current_goal_text": "from (indt «IsSelfA'.axioms_») X0^1 X1^1", "current_goal_predicate": "from", "failed_attempts": [], "successful_attempts": [ @@ -117904,8 +114162,7 @@ "rule": [ "UserRule", { - "rule_text": - "(from (indt «IsSelfA'.axioms_») (indt «HasA.axioms_») \n (const «Builders_18.HB_unnamed_factory_20»)) :- .", + "rule_text": "(from (indt «IsSelfA'.axioms_») (indt «HasA.axioms_») \n (const «Builders_18.HB_unnamed_factory_20»)) :- .", "rule_loc": [ "File", { @@ -117935,8 +114192,7 @@ "rule": [ "UserRule", { - "rule_text": - "(from (indt «IsSelfA'.axioms_») (indt «HasA.axioms_») \n (const «Builders_18.HB_unnamed_factory_20»)) :- .", + "rule_text": "(from (indt «IsSelfA'.axioms_») (indt «HasA.axioms_») \n (const «Builders_18.HB_unnamed_factory_20»)) :- .", "rule_loc": [ "File", { @@ -117970,8 +114226,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.findall A0 A1) :- (findall_solutions A0 A1).", + "rule_text": "(std.findall A0 A1) :- (findall_solutions A0 A1).", "rule_loc": [ "File", { @@ -118009,13 +114264,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -118107,13 +114360,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -118128,13 +114379,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -118149,13 +114398,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -118170,13 +114417,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -118248,13 +114493,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -118345,13 +114588,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -118385,13 +114626,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -118425,13 +114664,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -118446,13 +114683,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -118752,13 +114987,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -118777,8 +115010,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -118803,13 +115035,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -118824,8 +115054,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -118863,8 +115092,7 @@ "Inference", { "current_goal_id": 1552, - "current_goal_text": - "std.do!\n [std.map\n [from (indt «IsSelfA'.axioms_») (indt «IsSelfA.axioms_») \n (const «Builders_18.HB_unnamed_factory_24»), \n from (indt «IsSelfA'.axioms_») (indt «HasB.axioms_») \n (const «Builders_18.HB_unnamed_factory_22»), \n from (indt «IsSelfA'.axioms_») (indt «HasA.axioms_») \n (const «Builders_18.HB_unnamed_factory_20»)] from_mixin X158^1, \n std.map\n [from (indt «IsSelfA'.axioms_») (indt «IsSelfA.axioms_») \n (const «Builders_18.HB_unnamed_factory_24»), \n from (indt «IsSelfA'.axioms_») (indt «HasB.axioms_») \n (const «Builders_18.HB_unnamed_factory_22»), \n from (indt «IsSelfA'.axioms_») (indt «HasA.axioms_») \n (const «Builders_18.HB_unnamed_factory_20»)] from_builder X159^1, \n std.map2 X159^1 X158^1 (factory-provides.one [] c0) (X154 c0)]", + "current_goal_text": "std.do!\n [std.map\n [from (indt «IsSelfA'.axioms_») (indt «IsSelfA.axioms_») \n (const «Builders_18.HB_unnamed_factory_24»), \n from (indt «IsSelfA'.axioms_») (indt «HasB.axioms_») \n (const «Builders_18.HB_unnamed_factory_22»), \n from (indt «IsSelfA'.axioms_») (indt «HasA.axioms_») \n (const «Builders_18.HB_unnamed_factory_20»)] from_mixin X158^1, \n std.map\n [from (indt «IsSelfA'.axioms_») (indt «IsSelfA.axioms_») \n (const «Builders_18.HB_unnamed_factory_24»), \n from (indt «IsSelfA'.axioms_») (indt «HasB.axioms_») \n (const «Builders_18.HB_unnamed_factory_22»), \n from (indt «IsSelfA'.axioms_») (indt «HasA.axioms_») \n (const «Builders_18.HB_unnamed_factory_20»)] from_builder X159^1, \n std.map2 X159^1 X158^1 (factory-provides.one [] c0) (X154 c0)]", "current_goal_predicate": "std.do!", "failed_attempts": [], "successful_attempts": [ @@ -118873,8 +115101,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", "rule_loc": [ "File", { @@ -118899,14 +115126,12 @@ }, "siblings": [ { - "goal_text": - "std.map\n [from (indt «IsSelfA'.axioms_») (indt «IsSelfA.axioms_») \n (const «Builders_18.HB_unnamed_factory_24»), \n from (indt «IsSelfA'.axioms_») (indt «HasB.axioms_») \n (const «Builders_18.HB_unnamed_factory_22»), \n from (indt «IsSelfA'.axioms_») (indt «HasA.axioms_») \n (const «Builders_18.HB_unnamed_factory_20»)] from_mixin X158^1", + "goal_text": "std.map\n [from (indt «IsSelfA'.axioms_») (indt «IsSelfA.axioms_») \n (const «Builders_18.HB_unnamed_factory_24»), \n from (indt «IsSelfA'.axioms_») (indt «HasB.axioms_») \n (const «Builders_18.HB_unnamed_factory_22»), \n from (indt «IsSelfA'.axioms_») (indt «HasA.axioms_») \n (const «Builders_18.HB_unnamed_factory_20»)] from_mixin X158^1", "goal_id": 1556 }, { "goal_text": "!", "goal_id": 1557 }, { - "goal_text": - "std.do!\n [std.map\n [from (indt «IsSelfA'.axioms_») (indt «IsSelfA.axioms_») \n (const «Builders_18.HB_unnamed_factory_24»), \n from (indt «IsSelfA'.axioms_») (indt «HasB.axioms_») \n (const «Builders_18.HB_unnamed_factory_22»), \n from (indt «IsSelfA'.axioms_») (indt «HasA.axioms_») \n (const «Builders_18.HB_unnamed_factory_20»)] from_builder X159^1, \n std.map2 X159^1 X158^1 (factory-provides.one [] c0) (X154 c0)]", + "goal_text": "std.do!\n [std.map\n [from (indt «IsSelfA'.axioms_») (indt «IsSelfA.axioms_») \n (const «Builders_18.HB_unnamed_factory_24»), \n from (indt «IsSelfA'.axioms_») (indt «HasB.axioms_») \n (const «Builders_18.HB_unnamed_factory_22»), \n from (indt «IsSelfA'.axioms_») (indt «HasA.axioms_») \n (const «Builders_18.HB_unnamed_factory_20»)] from_builder X159^1, \n std.map2 X159^1 X158^1 (factory-provides.one [] c0) (X154 c0)]", "goal_id": 1558 } ], @@ -118957,13 +115182,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -119055,13 +115278,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -119076,13 +115297,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -119097,13 +115316,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -119118,13 +115335,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -119196,13 +115411,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -119293,13 +115506,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -119333,13 +115544,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -119373,13 +115582,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -119394,13 +115601,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -119700,13 +115905,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -119725,8 +115928,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -119751,13 +115953,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -119772,8 +115972,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -119805,8 +116004,7 @@ "Inference", { "current_goal_id": 1556, - "current_goal_text": - "std.map\n [from (indt «IsSelfA'.axioms_») (indt «IsSelfA.axioms_») \n (const «Builders_18.HB_unnamed_factory_24»), \n from (indt «IsSelfA'.axioms_») (indt «HasB.axioms_») \n (const «Builders_18.HB_unnamed_factory_22»), \n from (indt «IsSelfA'.axioms_») (indt «HasA.axioms_») \n (const «Builders_18.HB_unnamed_factory_20»)] from_mixin X158^1", + "current_goal_text": "std.map\n [from (indt «IsSelfA'.axioms_») (indt «IsSelfA.axioms_») \n (const «Builders_18.HB_unnamed_factory_24»), \n from (indt «IsSelfA'.axioms_») (indt «HasB.axioms_») \n (const «Builders_18.HB_unnamed_factory_22»), \n from (indt «IsSelfA'.axioms_») (indt «HasA.axioms_») \n (const «Builders_18.HB_unnamed_factory_20»)] from_mixin X158^1", "current_goal_predicate": "std.map", "failed_attempts": [], "successful_attempts": [ @@ -119815,8 +116013,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -119843,13 +116040,11 @@ }, "siblings": [ { - "goal_text": - "from_mixin\n (from (indt «IsSelfA'.axioms_») (indt «IsSelfA.axioms_») \n (const «Builders_18.HB_unnamed_factory_24»)) X160^1", + "goal_text": "from_mixin\n (from (indt «IsSelfA'.axioms_») (indt «IsSelfA.axioms_») \n (const «Builders_18.HB_unnamed_factory_24»)) X160^1", "goal_id": 1559 }, { - "goal_text": - "std.map\n [from (indt «IsSelfA'.axioms_») (indt «HasB.axioms_») \n (const «Builders_18.HB_unnamed_factory_22»), \n from (indt «IsSelfA'.axioms_») (indt «HasA.axioms_») \n (const «Builders_18.HB_unnamed_factory_20»)] from_mixin X161^1", + "goal_text": "std.map\n [from (indt «IsSelfA'.axioms_») (indt «HasB.axioms_») \n (const «Builders_18.HB_unnamed_factory_22»), \n from (indt «IsSelfA'.axioms_») (indt «HasA.axioms_») \n (const «Builders_18.HB_unnamed_factory_20»)] from_mixin X161^1", "goal_id": 1560 } ], @@ -119862,8 +116057,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -119920,13 +116114,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -120018,13 +116210,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -120039,13 +116229,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -120060,13 +116248,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -120081,13 +116267,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -120159,13 +116343,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -120256,13 +116438,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -120296,13 +116476,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -120336,13 +116514,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -120357,13 +116533,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -120663,13 +116837,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -120688,8 +116860,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -120714,13 +116885,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -120735,8 +116904,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -120768,8 +116936,7 @@ "Inference", { "current_goal_id": 1559, - "current_goal_text": - "from_mixin\n (from (indt «IsSelfA'.axioms_») (indt «IsSelfA.axioms_») \n (const «Builders_18.HB_unnamed_factory_24»)) X160^1", + "current_goal_text": "from_mixin\n (from (indt «IsSelfA'.axioms_») (indt «IsSelfA.axioms_») \n (const «Builders_18.HB_unnamed_factory_24»)) X160^1", "current_goal_predicate": "from_mixin", "failed_attempts": [], "successful_attempts": [ @@ -120782,8 +116949,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 12, "column": 0, "character": 414 @@ -120810,8 +116976,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 12, "column": 0, "character": 414 @@ -120826,8 +116991,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -120884,13 +117048,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -120982,13 +117144,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -121003,13 +117163,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -121024,13 +117182,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -121045,13 +117201,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -121123,13 +117277,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -121220,13 +117372,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -121260,13 +117410,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -121300,13 +117448,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -121321,13 +117467,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -121627,13 +117771,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -121652,8 +117794,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -121678,13 +117819,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -121699,8 +117838,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -121732,8 +117870,7 @@ "Inference", { "current_goal_id": 1560, - "current_goal_text": - "std.map\n [from (indt «IsSelfA'.axioms_») (indt «HasB.axioms_») \n (const «Builders_18.HB_unnamed_factory_22»), \n from (indt «IsSelfA'.axioms_») (indt «HasA.axioms_») \n (const «Builders_18.HB_unnamed_factory_20»)] from_mixin X161^1", + "current_goal_text": "std.map\n [from (indt «IsSelfA'.axioms_») (indt «HasB.axioms_») \n (const «Builders_18.HB_unnamed_factory_22»), \n from (indt «IsSelfA'.axioms_») (indt «HasA.axioms_») \n (const «Builders_18.HB_unnamed_factory_20»)] from_mixin X161^1", "current_goal_predicate": "std.map", "failed_attempts": [], "successful_attempts": [ @@ -121742,8 +117879,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -121770,13 +117906,11 @@ }, "siblings": [ { - "goal_text": - "from_mixin\n (from (indt «IsSelfA'.axioms_») (indt «HasB.axioms_») \n (const «Builders_18.HB_unnamed_factory_22»)) X162^1", + "goal_text": "from_mixin\n (from (indt «IsSelfA'.axioms_») (indt «HasB.axioms_») \n (const «Builders_18.HB_unnamed_factory_22»)) X162^1", "goal_id": 1561 }, { - "goal_text": - "std.map\n [from (indt «IsSelfA'.axioms_») (indt «HasA.axioms_») \n (const «Builders_18.HB_unnamed_factory_20»)] from_mixin X163^1", + "goal_text": "std.map\n [from (indt «IsSelfA'.axioms_») (indt «HasA.axioms_») \n (const «Builders_18.HB_unnamed_factory_20»)] from_mixin X163^1", "goal_id": 1562 } ], @@ -121789,8 +117923,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -121809,8 +117942,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -121867,13 +117999,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -121965,13 +118095,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -121986,13 +118114,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -122007,13 +118133,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -122028,13 +118152,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -122106,13 +118228,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -122203,13 +118323,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -122243,13 +118361,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -122283,13 +118399,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -122304,13 +118418,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -122610,13 +118722,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -122635,8 +118745,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -122661,13 +118770,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -122682,8 +118789,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -122715,8 +118821,7 @@ "Inference", { "current_goal_id": 1561, - "current_goal_text": - "from_mixin\n (from (indt «IsSelfA'.axioms_») (indt «HasB.axioms_») \n (const «Builders_18.HB_unnamed_factory_22»)) X162^1", + "current_goal_text": "from_mixin\n (from (indt «IsSelfA'.axioms_») (indt «HasB.axioms_») \n (const «Builders_18.HB_unnamed_factory_22»)) X162^1", "current_goal_predicate": "from_mixin", "failed_attempts": [], "successful_attempts": [ @@ -122729,8 +118834,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 12, "column": 0, "character": 414 @@ -122757,8 +118861,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 12, "column": 0, "character": 414 @@ -122773,8 +118876,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -122793,8 +118895,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -122851,13 +118952,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -122949,13 +119048,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -122970,13 +119067,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -122991,13 +119086,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -123012,13 +119105,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -123090,13 +119181,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -123187,13 +119276,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -123227,13 +119314,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -123267,13 +119352,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -123288,13 +119371,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -123594,13 +119675,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -123619,8 +119698,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -123645,13 +119723,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -123666,8 +119742,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -123699,8 +119774,7 @@ "Inference", { "current_goal_id": 1562, - "current_goal_text": - "std.map\n [from (indt «IsSelfA'.axioms_») (indt «HasA.axioms_») \n (const «Builders_18.HB_unnamed_factory_20»)] from_mixin X163^1", + "current_goal_text": "std.map\n [from (indt «IsSelfA'.axioms_») (indt «HasA.axioms_») \n (const «Builders_18.HB_unnamed_factory_20»)] from_mixin X163^1", "current_goal_predicate": "std.map", "failed_attempts": [], "successful_attempts": [ @@ -123709,8 +119783,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -123734,8 +119807,7 @@ }, "siblings": [ { - "goal_text": - "from_mixin\n (from (indt «IsSelfA'.axioms_») (indt «HasA.axioms_») \n (const «Builders_18.HB_unnamed_factory_20»)) X164^1", + "goal_text": "from_mixin\n (from (indt «IsSelfA'.axioms_») (indt «HasA.axioms_») \n (const «Builders_18.HB_unnamed_factory_20»)) X164^1", "goal_id": 1563 }, { @@ -123752,8 +119824,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -123772,8 +119843,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -123792,8 +119862,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -123850,13 +119919,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -123948,13 +120015,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -123969,13 +120034,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -123990,13 +120053,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -124011,13 +120072,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -124089,13 +120148,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -124186,13 +120243,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -124226,13 +120281,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -124266,13 +120319,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -124287,13 +120338,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -124593,13 +120642,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -124618,8 +120665,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -124644,13 +120690,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -124665,8 +120709,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -124698,8 +120741,7 @@ "Inference", { "current_goal_id": 1563, - "current_goal_text": - "from_mixin\n (from (indt «IsSelfA'.axioms_») (indt «HasA.axioms_») \n (const «Builders_18.HB_unnamed_factory_20»)) X164^1", + "current_goal_text": "from_mixin\n (from (indt «IsSelfA'.axioms_») (indt «HasA.axioms_») \n (const «Builders_18.HB_unnamed_factory_20»)) X164^1", "current_goal_predicate": "from_mixin", "failed_attempts": [], "successful_attempts": [ @@ -124712,8 +120754,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 12, "column": 0, "character": 414 @@ -124740,8 +120781,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 12, "column": 0, "character": 414 @@ -124756,8 +120796,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -124776,8 +120815,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -124796,8 +120834,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -124854,13 +120891,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -124952,13 +120987,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -124973,13 +121006,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -124994,13 +121025,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -125015,13 +121044,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -125093,13 +121120,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -125190,13 +121215,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -125230,13 +121253,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -125270,13 +121291,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -125291,13 +121310,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -125597,13 +121614,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -125622,8 +121637,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -125648,13 +121662,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -125669,8 +121681,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -125754,8 +121765,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -125774,8 +121784,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -125794,8 +121803,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -125852,13 +121860,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -125950,13 +121956,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -125971,13 +121975,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -125992,13 +121994,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -126013,13 +122013,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -126091,13 +122089,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -126188,13 +122184,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -126228,13 +122222,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -126268,13 +122260,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -126289,13 +122279,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -126595,13 +122583,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -126620,8 +122606,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -126646,13 +122631,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -126667,8 +122650,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -126706,8 +122688,7 @@ "Inference", { "current_goal_id": 1558, - "current_goal_text": - "std.do!\n [std.map\n [from (indt «IsSelfA'.axioms_») (indt «IsSelfA.axioms_») \n (const «Builders_18.HB_unnamed_factory_24»), \n from (indt «IsSelfA'.axioms_») (indt «HasB.axioms_») \n (const «Builders_18.HB_unnamed_factory_22»), \n from (indt «IsSelfA'.axioms_») (indt «HasA.axioms_») \n (const «Builders_18.HB_unnamed_factory_20»)] from_builder X159^1, \n std.map2 X159^1 \n [indt «IsSelfA.axioms_», indt «HasB.axioms_», indt «HasA.axioms_»] \n (factory-provides.one [] c0) (X154 c0)]", + "current_goal_text": "std.do!\n [std.map\n [from (indt «IsSelfA'.axioms_») (indt «IsSelfA.axioms_») \n (const «Builders_18.HB_unnamed_factory_24»), \n from (indt «IsSelfA'.axioms_») (indt «HasB.axioms_») \n (const «Builders_18.HB_unnamed_factory_22»), \n from (indt «IsSelfA'.axioms_») (indt «HasA.axioms_») \n (const «Builders_18.HB_unnamed_factory_20»)] from_builder X159^1, \n std.map2 X159^1 \n [indt «IsSelfA.axioms_», indt «HasB.axioms_», indt «HasA.axioms_»] \n (factory-provides.one [] c0) (X154 c0)]", "current_goal_predicate": "std.do!", "failed_attempts": [], "successful_attempts": [ @@ -126716,8 +122697,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", "rule_loc": [ "File", { @@ -126742,14 +122722,12 @@ }, "siblings": [ { - "goal_text": - "std.map\n [from (indt «IsSelfA'.axioms_») (indt «IsSelfA.axioms_») \n (const «Builders_18.HB_unnamed_factory_24»), \n from (indt «IsSelfA'.axioms_») (indt «HasB.axioms_») \n (const «Builders_18.HB_unnamed_factory_22»), \n from (indt «IsSelfA'.axioms_») (indt «HasA.axioms_») \n (const «Builders_18.HB_unnamed_factory_20»)] from_builder X159^1", + "goal_text": "std.map\n [from (indt «IsSelfA'.axioms_») (indt «IsSelfA.axioms_») \n (const «Builders_18.HB_unnamed_factory_24»), \n from (indt «IsSelfA'.axioms_») (indt «HasB.axioms_») \n (const «Builders_18.HB_unnamed_factory_22»), \n from (indt «IsSelfA'.axioms_») (indt «HasA.axioms_») \n (const «Builders_18.HB_unnamed_factory_20»)] from_builder X159^1", "goal_id": 1565 }, { "goal_text": "!", "goal_id": 1566 }, { - "goal_text": - "std.do!\n [std.map2 X159^1 \n [indt «IsSelfA.axioms_», indt «HasB.axioms_», indt «HasA.axioms_»] \n (factory-provides.one [] c0) (X154 c0)]", + "goal_text": "std.do!\n [std.map2 X159^1 \n [indt «IsSelfA.axioms_», indt «HasB.axioms_», indt «HasA.axioms_»] \n (factory-provides.one [] c0) (X154 c0)]", "goal_id": 1567 } ], @@ -126819,13 +122797,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -126917,13 +122893,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -126938,13 +122912,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -126959,13 +122931,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -126980,13 +122950,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -127058,13 +123026,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -127155,13 +123121,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -127195,13 +123159,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -127235,13 +123197,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -127256,13 +123216,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -127562,13 +123520,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -127587,8 +123543,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -127613,13 +123568,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -127634,8 +123587,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -127667,8 +123619,7 @@ "Inference", { "current_goal_id": 1565, - "current_goal_text": - "std.map\n [from (indt «IsSelfA'.axioms_») (indt «IsSelfA.axioms_») \n (const «Builders_18.HB_unnamed_factory_24»), \n from (indt «IsSelfA'.axioms_») (indt «HasB.axioms_») \n (const «Builders_18.HB_unnamed_factory_22»), \n from (indt «IsSelfA'.axioms_») (indt «HasA.axioms_») \n (const «Builders_18.HB_unnamed_factory_20»)] from_builder X159^1", + "current_goal_text": "std.map\n [from (indt «IsSelfA'.axioms_») (indt «IsSelfA.axioms_») \n (const «Builders_18.HB_unnamed_factory_24»), \n from (indt «IsSelfA'.axioms_») (indt «HasB.axioms_») \n (const «Builders_18.HB_unnamed_factory_22»), \n from (indt «IsSelfA'.axioms_») (indt «HasA.axioms_») \n (const «Builders_18.HB_unnamed_factory_20»)] from_builder X159^1", "current_goal_predicate": "std.map", "failed_attempts": [], "successful_attempts": [ @@ -127677,8 +123628,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -127705,13 +123655,11 @@ }, "siblings": [ { - "goal_text": - "from_builder\n (from (indt «IsSelfA'.axioms_») (indt «IsSelfA.axioms_») \n (const «Builders_18.HB_unnamed_factory_24»)) X166^1", + "goal_text": "from_builder\n (from (indt «IsSelfA'.axioms_») (indt «IsSelfA.axioms_») \n (const «Builders_18.HB_unnamed_factory_24»)) X166^1", "goal_id": 1568 }, { - "goal_text": - "std.map\n [from (indt «IsSelfA'.axioms_») (indt «HasB.axioms_») \n (const «Builders_18.HB_unnamed_factory_22»), \n from (indt «IsSelfA'.axioms_») (indt «HasA.axioms_») \n (const «Builders_18.HB_unnamed_factory_20»)] from_builder X167^1", + "goal_text": "std.map\n [from (indt «IsSelfA'.axioms_») (indt «HasB.axioms_») \n (const «Builders_18.HB_unnamed_factory_22»), \n from (indt «IsSelfA'.axioms_») (indt «HasA.axioms_») \n (const «Builders_18.HB_unnamed_factory_20»)] from_builder X167^1", "goal_id": 1569 } ], @@ -127724,8 +123672,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -127801,13 +123748,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -127899,13 +123844,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -127920,13 +123863,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -127941,13 +123882,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -127962,13 +123901,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -128040,13 +123977,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -128137,13 +124072,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -128177,13 +124110,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -128217,13 +124148,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -128238,13 +124167,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -128544,13 +124471,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -128569,8 +124494,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -128595,13 +124519,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -128616,8 +124538,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -128649,8 +124570,7 @@ "Inference", { "current_goal_id": 1568, - "current_goal_text": - "from_builder\n (from (indt «IsSelfA'.axioms_») (indt «IsSelfA.axioms_») \n (const «Builders_18.HB_unnamed_factory_24»)) X166^1", + "current_goal_text": "from_builder\n (from (indt «IsSelfA'.axioms_») (indt «IsSelfA.axioms_») \n (const «Builders_18.HB_unnamed_factory_24»)) X166^1", "current_goal_predicate": "from_builder", "failed_attempts": [], "successful_attempts": [ @@ -128659,13 +124579,11 @@ "rule": [ "UserRule", { - "rule_text": - "(from_builder (from _ _ A0) (global A0)) :- .", + "rule_text": "(from_builder (from _ _ A0) (global A0)) :- .", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 15, "column": 0, "character": 476 @@ -128698,8 +124616,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 15, "column": 0, "character": 476 @@ -128714,8 +124631,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -128791,13 +124707,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -128889,13 +124803,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -128910,13 +124822,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -128931,13 +124841,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -128952,13 +124860,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -129030,13 +124936,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -129127,13 +125031,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -129167,13 +125069,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -129207,13 +125107,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -129228,13 +125126,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -129534,13 +125430,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -129559,8 +125453,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -129585,13 +125478,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -129606,8 +125497,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -129639,8 +125529,7 @@ "Inference", { "current_goal_id": 1569, - "current_goal_text": - "std.map\n [from (indt «IsSelfA'.axioms_») (indt «HasB.axioms_») \n (const «Builders_18.HB_unnamed_factory_22»), \n from (indt «IsSelfA'.axioms_») (indt «HasA.axioms_») \n (const «Builders_18.HB_unnamed_factory_20»)] from_builder X167^1", + "current_goal_text": "std.map\n [from (indt «IsSelfA'.axioms_») (indt «HasB.axioms_») \n (const «Builders_18.HB_unnamed_factory_22»), \n from (indt «IsSelfA'.axioms_») (indt «HasA.axioms_») \n (const «Builders_18.HB_unnamed_factory_20»)] from_builder X167^1", "current_goal_predicate": "std.map", "failed_attempts": [], "successful_attempts": [ @@ -129649,8 +125538,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -129677,13 +125565,11 @@ }, "siblings": [ { - "goal_text": - "from_builder\n (from (indt «IsSelfA'.axioms_») (indt «HasB.axioms_») \n (const «Builders_18.HB_unnamed_factory_22»)) X168^1", + "goal_text": "from_builder\n (from (indt «IsSelfA'.axioms_») (indt «HasB.axioms_») \n (const «Builders_18.HB_unnamed_factory_22»)) X168^1", "goal_id": 1570 }, { - "goal_text": - "std.map\n [from (indt «IsSelfA'.axioms_») (indt «HasA.axioms_») \n (const «Builders_18.HB_unnamed_factory_20»)] from_builder X169^1", + "goal_text": "std.map\n [from (indt «IsSelfA'.axioms_») (indt «HasA.axioms_») \n (const «Builders_18.HB_unnamed_factory_20»)] from_builder X169^1", "goal_id": 1571 } ], @@ -129696,8 +125582,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -129716,8 +125601,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -129793,13 +125677,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -129891,13 +125773,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -129912,13 +125792,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -129933,13 +125811,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -129954,13 +125830,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -130032,13 +125906,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -130129,13 +126001,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -130169,13 +126039,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -130209,13 +126077,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -130230,13 +126096,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -130536,13 +126400,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -130561,8 +126423,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -130587,13 +126448,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -130608,8 +126467,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -130641,8 +126499,7 @@ "Inference", { "current_goal_id": 1570, - "current_goal_text": - "from_builder\n (from (indt «IsSelfA'.axioms_») (indt «HasB.axioms_») \n (const «Builders_18.HB_unnamed_factory_22»)) X168^1", + "current_goal_text": "from_builder\n (from (indt «IsSelfA'.axioms_») (indt «HasB.axioms_») \n (const «Builders_18.HB_unnamed_factory_22»)) X168^1", "current_goal_predicate": "from_builder", "failed_attempts": [], "successful_attempts": [ @@ -130651,13 +126508,11 @@ "rule": [ "UserRule", { - "rule_text": - "(from_builder (from _ _ A0) (global A0)) :- .", + "rule_text": "(from_builder (from _ _ A0) (global A0)) :- .", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 15, "column": 0, "character": 476 @@ -130690,8 +126545,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 15, "column": 0, "character": 476 @@ -130706,8 +126560,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -130726,8 +126579,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -130803,13 +126655,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -130901,13 +126751,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -130922,13 +126770,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -130943,13 +126789,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -130964,13 +126808,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -131042,13 +126884,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -131139,13 +126979,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -131179,13 +127017,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -131219,13 +127055,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -131240,13 +127074,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -131546,13 +127378,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -131571,8 +127401,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -131597,13 +127426,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -131618,8 +127445,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -131651,8 +127477,7 @@ "Inference", { "current_goal_id": 1571, - "current_goal_text": - "std.map\n [from (indt «IsSelfA'.axioms_») (indt «HasA.axioms_») \n (const «Builders_18.HB_unnamed_factory_20»)] from_builder X169^1", + "current_goal_text": "std.map\n [from (indt «IsSelfA'.axioms_») (indt «HasA.axioms_») \n (const «Builders_18.HB_unnamed_factory_20»)] from_builder X169^1", "current_goal_predicate": "std.map", "failed_attempts": [], "successful_attempts": [ @@ -131661,8 +127486,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -131686,8 +127510,7 @@ }, "siblings": [ { - "goal_text": - "from_builder\n (from (indt «IsSelfA'.axioms_») (indt «HasA.axioms_») \n (const «Builders_18.HB_unnamed_factory_20»)) X170^1", + "goal_text": "from_builder\n (from (indt «IsSelfA'.axioms_») (indt «HasA.axioms_») \n (const «Builders_18.HB_unnamed_factory_20»)) X170^1", "goal_id": 1572 }, { @@ -131704,8 +127527,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -131724,8 +127546,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -131744,8 +127565,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -131821,13 +127641,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -131919,13 +127737,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -131940,13 +127756,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -131961,13 +127775,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -131982,13 +127794,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -132060,13 +127870,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -132157,13 +127965,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -132197,13 +128003,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -132237,13 +128041,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -132258,13 +128060,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -132564,13 +128364,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -132589,8 +128387,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -132615,13 +128412,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -132636,8 +128431,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -132669,8 +128463,7 @@ "Inference", { "current_goal_id": 1572, - "current_goal_text": - "from_builder\n (from (indt «IsSelfA'.axioms_») (indt «HasA.axioms_») \n (const «Builders_18.HB_unnamed_factory_20»)) X170^1", + "current_goal_text": "from_builder\n (from (indt «IsSelfA'.axioms_») (indt «HasA.axioms_») \n (const «Builders_18.HB_unnamed_factory_20»)) X170^1", "current_goal_predicate": "from_builder", "failed_attempts": [], "successful_attempts": [ @@ -132679,13 +128472,11 @@ "rule": [ "UserRule", { - "rule_text": - "(from_builder (from _ _ A0) (global A0)) :- .", + "rule_text": "(from_builder (from _ _ A0) (global A0)) :- .", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 15, "column": 0, "character": 476 @@ -132718,8 +128509,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 15, "column": 0, "character": 476 @@ -132734,8 +128524,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -132754,8 +128543,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -132774,8 +128562,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -132851,13 +128638,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -132949,13 +128734,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -132970,13 +128753,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -132991,13 +128772,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -133012,13 +128791,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -133090,13 +128867,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -133187,13 +128962,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -133227,13 +129000,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -133267,13 +129038,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -133288,13 +129057,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -133594,13 +129361,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -133619,8 +129384,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -133645,13 +129409,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -133666,8 +129428,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -133751,8 +129512,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -133771,8 +129531,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -133791,8 +129550,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -133868,13 +129626,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -133966,13 +129722,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -133987,13 +129741,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -134008,13 +129760,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -134029,13 +129779,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -134107,13 +129855,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -134204,13 +129950,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -134244,13 +129988,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -134284,13 +130026,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -134305,13 +130045,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -134611,13 +130349,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -134636,8 +130372,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -134662,13 +130397,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -134683,8 +130416,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -134722,8 +130454,7 @@ "Inference", { "current_goal_id": 1567, - "current_goal_text": - "std.do!\n [std.map2\n [global (const «Builders_18.HB_unnamed_factory_24»), \n global (const «Builders_18.HB_unnamed_factory_22»), \n global (const «Builders_18.HB_unnamed_factory_20»)] \n [indt «IsSelfA.axioms_», indt «HasB.axioms_», indt «HasA.axioms_»] \n (factory-provides.one [] c0) (X154 c0)]", + "current_goal_text": "std.do!\n [std.map2\n [global (const «Builders_18.HB_unnamed_factory_24»), \n global (const «Builders_18.HB_unnamed_factory_22»), \n global (const «Builders_18.HB_unnamed_factory_20»)] \n [indt «IsSelfA.axioms_», indt «HasB.axioms_», indt «HasA.axioms_»] \n (factory-provides.one [] c0) (X154 c0)]", "current_goal_predicate": "std.do!", "failed_attempts": [], "successful_attempts": [ @@ -134732,8 +130463,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", "rule_loc": [ "File", { @@ -134755,8 +130485,7 @@ }, "siblings": [ { - "goal_text": - "std.map2\n [global (const «Builders_18.HB_unnamed_factory_24»), \n global (const «Builders_18.HB_unnamed_factory_22»), \n global (const «Builders_18.HB_unnamed_factory_20»)] \n [indt «IsSelfA.axioms_», indt «HasB.axioms_», indt «HasA.axioms_»] \n (factory-provides.one [] c0) (X154 c0)", + "goal_text": "std.map2\n [global (const «Builders_18.HB_unnamed_factory_24»), \n global (const «Builders_18.HB_unnamed_factory_22»), \n global (const «Builders_18.HB_unnamed_factory_20»)] \n [indt «IsSelfA.axioms_», indt «HasB.axioms_», indt «HasA.axioms_»] \n (factory-provides.one [] c0) (X154 c0)", "goal_id": 1574 }, { "goal_text": "!", "goal_id": 1575 }, @@ -134847,13 +130576,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -134945,13 +130672,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -134966,13 +130691,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -134987,13 +130710,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -135008,13 +130729,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -135086,13 +130805,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -135183,13 +130900,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -135223,13 +130938,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -135263,13 +130976,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -135284,13 +130995,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -135590,13 +131299,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -135615,8 +131322,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -135641,13 +131347,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -135662,8 +131366,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -135695,8 +131398,7 @@ "Inference", { "current_goal_id": 1574, - "current_goal_text": - "std.map2\n [global (const «Builders_18.HB_unnamed_factory_24»), \n global (const «Builders_18.HB_unnamed_factory_22»), \n global (const «Builders_18.HB_unnamed_factory_20»)] \n [indt «IsSelfA.axioms_», indt «HasB.axioms_», indt «HasA.axioms_»] \n (factory-provides.one [] c0) (X154 c0)", + "current_goal_text": "std.map2\n [global (const «Builders_18.HB_unnamed_factory_24»), \n global (const «Builders_18.HB_unnamed_factory_22»), \n global (const «Builders_18.HB_unnamed_factory_20»)] \n [indt «IsSelfA.axioms_», indt «HasB.axioms_», indt «HasA.axioms_»] \n (factory-provides.one [] c0) (X154 c0)", "current_goal_predicate": "std.map2", "failed_attempts": [], "successful_attempts": [ @@ -135705,8 +131407,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -135739,13 +131440,11 @@ }, "siblings": [ { - "goal_text": - "factory-provides.one [] c0 \n (global (const «Builders_18.HB_unnamed_factory_24»)) \n (indt «IsSelfA.axioms_») X173^1", + "goal_text": "factory-provides.one [] c0 \n (global (const «Builders_18.HB_unnamed_factory_24»)) \n (indt «IsSelfA.axioms_») X173^1", "goal_id": 1577 }, { - "goal_text": - "std.map2\n [global (const «Builders_18.HB_unnamed_factory_22»), \n global (const «Builders_18.HB_unnamed_factory_20»)] \n [indt «HasB.axioms_», indt «HasA.axioms_»] (factory-provides.one [] c0) \n X174^1", + "goal_text": "std.map2\n [global (const «Builders_18.HB_unnamed_factory_22»), \n global (const «Builders_18.HB_unnamed_factory_20»)] \n [indt «HasB.axioms_», indt «HasA.axioms_»] (factory-provides.one [] c0) \n X174^1", "goal_id": 1578 } ], @@ -135758,8 +131457,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -135854,13 +131552,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -135952,13 +131648,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -135973,13 +131667,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -135994,13 +131686,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -136015,13 +131705,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -136093,13 +131781,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -136190,13 +131876,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -136230,13 +131914,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -136270,13 +131952,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -136291,13 +131971,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -136597,13 +132275,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -136622,8 +132298,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -136648,13 +132323,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -136669,8 +132342,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -136702,8 +132374,7 @@ "Inference", { "current_goal_id": 1577, - "current_goal_text": - "factory-provides.one [] c0 \n (global (const «Builders_18.HB_unnamed_factory_24»)) \n (indt «IsSelfA.axioms_») X173^1", + "current_goal_text": "factory-provides.one [] c0 \n (global (const «Builders_18.HB_unnamed_factory_24»)) \n (indt «IsSelfA.axioms_») X173^1", "current_goal_predicate": "factory-provides.one", "failed_attempts": [], "successful_attempts": [ @@ -136712,13 +132383,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", + "rule_text": "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 108, "column": 0, "character": 3601 @@ -136742,8 +132411,7 @@ }, "siblings": [ { - "goal_text": - "std.do!\n [std.assert-ok!\n (coq.typecheck (global (const «Builders_18.HB_unnamed_factory_24»)) \n X176^1) Builder illtyped, \n (coq.subst-prod [] X176^1 X177^1 , coq.subst-prod [c0] X177^1 X178^1), \n std.assert! (extract-conclusion-params c0 X178^1 X175^1) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]", + "goal_text": "std.do!\n [std.assert-ok!\n (coq.typecheck (global (const «Builders_18.HB_unnamed_factory_24»)) \n X176^1) Builder illtyped, \n (coq.subst-prod [] X176^1 X177^1 , coq.subst-prod [c0] X177^1 X178^1), \n std.assert! (extract-conclusion-params c0 X178^1 X175^1) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]", "goal_id": 1579 } ], @@ -136756,13 +132424,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", + "rule_text": "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 108, "column": 0, "character": 3601 @@ -136777,8 +132443,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -136873,13 +132538,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -136971,13 +132634,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -136992,13 +132653,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -137013,13 +132672,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -137034,13 +132691,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -137112,13 +132767,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -137209,13 +132862,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -137249,13 +132900,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -137289,13 +132938,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -137310,13 +132957,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -137616,13 +133261,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -137641,8 +133284,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -137667,13 +133309,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -137688,8 +133328,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -137721,8 +133360,7 @@ "Inference", { "current_goal_id": 1579, - "current_goal_text": - "std.do!\n [std.assert-ok!\n (coq.typecheck (global (const «Builders_18.HB_unnamed_factory_24»)) \n X176^1) Builder illtyped, \n (coq.subst-prod [] X176^1 X177^1 , coq.subst-prod [c0] X177^1 X178^1), \n std.assert! (extract-conclusion-params c0 X178^1 X175^1) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]", + "current_goal_text": "std.do!\n [std.assert-ok!\n (coq.typecheck (global (const «Builders_18.HB_unnamed_factory_24»)) \n X176^1) Builder illtyped, \n (coq.subst-prod [] X176^1 X177^1 , coq.subst-prod [c0] X177^1 X178^1), \n std.assert! (extract-conclusion-params c0 X178^1 X175^1) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]", "current_goal_predicate": "std.do!", "failed_attempts": [], "successful_attempts": [ @@ -137731,8 +133369,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", "rule_loc": [ "File", { @@ -137757,14 +133394,12 @@ }, "siblings": [ { - "goal_text": - "std.assert-ok!\n (coq.typecheck (global (const «Builders_18.HB_unnamed_factory_24»)) X176^1) \n Builder illtyped", + "goal_text": "std.assert-ok!\n (coq.typecheck (global (const «Builders_18.HB_unnamed_factory_24»)) X176^1) \n Builder illtyped", "goal_id": 1580 }, { "goal_text": "!", "goal_id": 1581 }, { - "goal_text": - "std.do!\n [(coq.subst-prod [] X176^1 X177^1 , coq.subst-prod [c0] X177^1 X178^1), \n std.assert! (extract-conclusion-params c0 X178^1 X175^1) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]", + "goal_text": "std.do!\n [(coq.subst-prod [] X176^1 X177^1 , coq.subst-prod [c0] X177^1 X178^1), \n std.assert! (extract-conclusion-params c0 X178^1 X175^1) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]", "goal_id": 1582 } ], @@ -137796,13 +133431,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", + "rule_text": "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 108, "column": 0, "character": 3601 @@ -137817,8 +133450,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -137913,13 +133545,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -138011,13 +133641,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -138032,13 +133660,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -138053,13 +133679,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -138074,13 +133698,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -138152,13 +133774,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -138249,13 +133869,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -138289,13 +133907,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -138329,13 +133945,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -138350,13 +133964,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -138656,13 +134268,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -138681,8 +134291,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -138707,13 +134316,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -138728,8 +134335,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -138761,8 +134367,7 @@ "Inference", { "current_goal_id": 1580, - "current_goal_text": - "std.assert-ok!\n (coq.typecheck (global (const «Builders_18.HB_unnamed_factory_24»)) X176^1) \n Builder illtyped", + "current_goal_text": "std.assert-ok!\n (coq.typecheck (global (const «Builders_18.HB_unnamed_factory_24»)) X176^1) \n Builder illtyped", "current_goal_predicate": "std.assert-ok!", "failed_attempts": [], "successful_attempts": [ @@ -138771,8 +134376,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert-ok! A0 A1) :- (A0 A2), (!), \n (A2 = ok ; A2 = error A3 , std.fatal-error-w-data A1 A3), (!).", + "rule_text": "(std.assert-ok! A0 A1) :- (A0 A2), (!), \n (A2 = ok ; A2 = error A3 , std.fatal-error-w-data A1 A3), (!).", "rule_loc": [ "File", { @@ -138794,14 +134398,12 @@ }, "siblings": [ { - "goal_text": - "coq.typecheck (global (const «Builders_18.HB_unnamed_factory_24»)) X176^1 \n X179^1", + "goal_text": "coq.typecheck (global (const «Builders_18.HB_unnamed_factory_24»)) X176^1 \n X179^1", "goal_id": 1583 }, { "goal_text": "!", "goal_id": 1584 }, { - "goal_text": - "X179^1 = ok ;\n X179^1 = error X180^1 , std.fatal-error-w-data Builder illtyped X180^1", + "goal_text": "X179^1 = ok ;\n X179^1 = error X180^1 , std.fatal-error-w-data Builder illtyped X180^1", "goal_id": 1585 }, { "goal_text": "!", "goal_id": 1586 } @@ -138815,8 +134417,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert-ok! A0 A1) :- (A0 A2), (!), \n (A2 = ok ; A2 = error A3 , std.fatal-error-w-data A1 A3), (!).", + "rule_text": "(std.assert-ok! A0 A1) :- (A0 A2), (!), \n (A2 = ok ; A2 = error A3 , std.fatal-error-w-data A1 A3), (!).", "rule_loc": [ "File", { @@ -138854,13 +134455,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", + "rule_text": "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 108, "column": 0, "character": 3601 @@ -138875,8 +134474,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -138971,13 +134569,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -139069,13 +134665,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -139090,13 +134684,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -139111,13 +134703,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -139132,13 +134722,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -139210,13 +134798,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -139307,13 +134893,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -139347,13 +134931,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -139387,13 +134969,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -139408,13 +134988,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -139714,13 +135292,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -139739,8 +135315,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -139765,13 +135340,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -139786,8 +135359,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -139819,8 +135391,7 @@ "Inference", { "current_goal_id": 1583, - "current_goal_text": - "coq.typecheck (global (const «Builders_18.HB_unnamed_factory_24»)) X176^1 \n X179^1", + "current_goal_text": "coq.typecheck (global (const «Builders_18.HB_unnamed_factory_24»)) X176^1 \n X179^1", "current_goal_predicate": "coq.typecheck", "failed_attempts": [], "successful_attempts": [ @@ -139831,8 +135402,7 @@ }, "siblings": [ { - "goal_text": - "X176^1 =\n prod `T` (sort (typ «interleave_context.396»)) c1 \\\n prod `fresh_name_19` (app [global (const «IsSelfA'.phant_axioms»), c1]) \n c2 \\\n app\n [global (indt «IsSelfA.axioms_»), c1, \n app [global (const «Builders_18.HB_unnamed_factory_20»), c1, c2], \n app [global (const «Builders_18.HB_unnamed_factory_22»), c1, c2]]", + "goal_text": "X176^1 =\n prod `T` (sort (typ «interleave_context.396»)) c1 \\\n prod `fresh_name_19` (app [global (const «IsSelfA'.phant_axioms»), c1]) \n c2 \\\n app\n [global (indt «IsSelfA.axioms_»), c1, \n app [global (const «Builders_18.HB_unnamed_factory_20»), c1, c2], \n app [global (const «Builders_18.HB_unnamed_factory_22»), c1, c2]]", "goal_id": 1587 }, { "goal_text": "X179^1 = ok", "goal_id": 1588 } @@ -139851,8 +135421,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert-ok! A0 A1) :- (A0 A2), (!), \n (A2 = ok ; A2 = error A3 , std.fatal-error-w-data A1 A3), (!).", + "rule_text": "(std.assert-ok! A0 A1) :- (A0 A2), (!), \n (A2 = ok ; A2 = error A3 , std.fatal-error-w-data A1 A3), (!).", "rule_loc": [ "File", { @@ -139890,13 +135459,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", + "rule_text": "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 108, "column": 0, "character": 3601 @@ -139911,8 +135478,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -140007,13 +135573,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -140105,13 +135669,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -140126,13 +135688,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -140147,13 +135707,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -140168,13 +135726,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -140246,13 +135802,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -140343,13 +135897,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -140383,13 +135935,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -140423,13 +135973,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -140444,13 +135992,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -140750,13 +136296,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -140775,8 +136319,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -140801,13 +136344,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -140822,8 +136363,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -140855,8 +136395,7 @@ "Inference", { "current_goal_id": 1587, - "current_goal_text": - "X176^1 =\n prod `T` (sort (typ «interleave_context.396»)) c1 \\\n prod `fresh_name_19` (app [global (const «IsSelfA'.phant_axioms»), c1]) \n c2 \\\n app\n [global (indt «IsSelfA.axioms_»), c1, \n app [global (const «Builders_18.HB_unnamed_factory_20»), c1, c2], \n app [global (const «Builders_18.HB_unnamed_factory_22»), c1, c2]]", + "current_goal_text": "X176^1 =\n prod `T` (sort (typ «interleave_context.396»)) c1 \\\n prod `fresh_name_19` (app [global (const «IsSelfA'.phant_axioms»), c1]) \n c2 \\\n app\n [global (indt «IsSelfA.axioms_»), c1, \n app [global (const «Builders_18.HB_unnamed_factory_20»), c1, c2], \n app [global (const «Builders_18.HB_unnamed_factory_22»), c1, c2]]", "current_goal_predicate": "=", "failed_attempts": [], "successful_attempts": [ @@ -140890,8 +136429,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert-ok! A0 A1) :- (A0 A2), (!), \n (A2 = ok ; A2 = error A3 , std.fatal-error-w-data A1 A3), (!).", + "rule_text": "(std.assert-ok! A0 A1) :- (A0 A2), (!), \n (A2 = ok ; A2 = error A3 , std.fatal-error-w-data A1 A3), (!).", "rule_loc": [ "File", { @@ -140929,13 +136467,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", + "rule_text": "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 108, "column": 0, "character": 3601 @@ -140950,8 +136486,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -141046,13 +136581,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -141144,13 +136677,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -141165,13 +136696,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -141186,13 +136715,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -141207,13 +136734,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -141285,13 +136810,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -141382,13 +136905,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -141422,13 +136943,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -141462,13 +136981,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -141483,13 +137000,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -141789,13 +137304,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -141814,8 +137327,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -141840,13 +137352,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -141861,8 +137371,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -141923,8 +137432,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert-ok! A0 A1) :- (A0 A2), (!), \n (A2 = ok ; A2 = error A3 , std.fatal-error-w-data A1 A3), (!).", + "rule_text": "(std.assert-ok! A0 A1) :- (A0 A2), (!), \n (A2 = ok ; A2 = error A3 , std.fatal-error-w-data A1 A3), (!).", "rule_loc": [ "File", { @@ -141962,13 +137470,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", + "rule_text": "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 108, "column": 0, "character": 3601 @@ -141983,8 +137489,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -142079,13 +137584,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -142177,13 +137680,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -142198,13 +137699,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -142219,13 +137718,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -142240,13 +137737,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -142318,13 +137813,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -142415,13 +137908,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -142455,13 +137946,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -142495,13 +137984,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -142516,13 +138003,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -142822,13 +138307,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -142847,8 +138330,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -142873,13 +138355,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -142894,8 +138374,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -142930,13 +138409,11 @@ "cut_victims": [ { "cut_branch_for_goal": { - "goal_text": - "std.assert-ok!\n (coq.typecheck (global (const «Builders_18.HB_unnamed_factory_24»)) X176^1) \n Builder illtyped", + "goal_text": "std.assert-ok!\n (coq.typecheck (global (const «Builders_18.HB_unnamed_factory_24»)) X176^1) \n Builder illtyped", "goal_id": 1580 }, "cut_branch": { - "rule_text": - "(std.assert-ok! _ A0) :- (std.fatal-error-w-data A0 no diagnostic returned).", + "rule_text": "(std.assert-ok! _ A0) :- (std.fatal-error-w-data A0 no diagnostic returned).", "rule_loc": [ "File", { @@ -142960,8 +138437,7 @@ "Inference", { "current_goal_id": 1585, - "current_goal_text": - "ok = ok ; ok = error X180^1 , std.fatal-error-w-data Builder illtyped X180^1", + "current_goal_text": "ok = ok ; ok = error X180^1 , std.fatal-error-w-data Builder illtyped X180^1", "current_goal_predicate": ";", "failed_attempts": [], "successful_attempts": [ @@ -143013,8 +138489,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert-ok! A0 A1) :- (A0 A2), (!), \n (A2 = ok ; A2 = error A3 , std.fatal-error-w-data A1 A3), (!).", + "rule_text": "(std.assert-ok! A0 A1) :- (A0 A2), (!), \n (A2 = ok ; A2 = error A3 , std.fatal-error-w-data A1 A3), (!).", "rule_loc": [ "File", { @@ -143052,13 +138527,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", + "rule_text": "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 108, "column": 0, "character": 3601 @@ -143073,8 +138546,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -143169,13 +138641,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -143267,13 +138737,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -143288,13 +138756,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -143309,13 +138775,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -143330,13 +138794,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -143408,13 +138870,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -143505,13 +138965,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -143545,13 +139003,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -143585,13 +139041,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -143606,13 +139060,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -143912,13 +139364,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -143937,8 +139387,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -143963,13 +139412,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -143984,8 +139431,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -144060,8 +139506,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert-ok! A0 A1) :- (A0 A2), (!), \n (A2 = ok ; A2 = error A3 , std.fatal-error-w-data A1 A3), (!).", + "rule_text": "(std.assert-ok! A0 A1) :- (A0 A2), (!), \n (A2 = ok ; A2 = error A3 , std.fatal-error-w-data A1 A3), (!).", "rule_loc": [ "File", { @@ -144099,13 +139544,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", + "rule_text": "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 108, "column": 0, "character": 3601 @@ -144120,8 +139563,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -144216,13 +139658,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -144314,13 +139754,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -144335,13 +139773,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -144356,13 +139792,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -144377,13 +139811,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -144455,13 +139887,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -144552,13 +139982,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -144592,13 +140020,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -144632,13 +140058,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -144653,13 +140077,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -144959,13 +140381,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -144984,8 +140404,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -145010,13 +140429,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -145031,8 +140448,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -145067,8 +140483,7 @@ "cut_victims": [ { "cut_branch_for_goal": { - "goal_text": - "X179^1 = ok ;\n X179^1 = error X180^1 , std.fatal-error-w-data Builder illtyped X180^1", + "goal_text": "X179^1 = ok ;\n X179^1 = error X180^1 , std.fatal-error-w-data Builder illtyped X180^1", "goal_id": 1585 }, "cut_branch": { @@ -145102,8 +140517,7 @@ "Inference", { "current_goal_id": 1582, - "current_goal_text": - "std.do!\n [(coq.subst-prod [] \n (prod `T` (sort (typ «interleave_context.396»)) c1 \\\n prod `fresh_name_19` \n (app [global (const «IsSelfA'.phant_axioms»), c1]) c2 \\\n app\n [global (indt «IsSelfA.axioms_»), c1, \n app [global (const «Builders_18.HB_unnamed_factory_20»), c1, c2], \n app [global (const «Builders_18.HB_unnamed_factory_22»), c1, c2]]) \n X177^1 , coq.subst-prod [c0] X177^1 X178^1), \n std.assert! (extract-conclusion-params c0 X178^1 X175^1) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]", + "current_goal_text": "std.do!\n [(coq.subst-prod [] \n (prod `T` (sort (typ «interleave_context.396»)) c1 \\\n prod `fresh_name_19` \n (app [global (const «IsSelfA'.phant_axioms»), c1]) c2 \\\n app\n [global (indt «IsSelfA.axioms_»), c1, \n app [global (const «Builders_18.HB_unnamed_factory_20»), c1, c2], \n app [global (const «Builders_18.HB_unnamed_factory_22»), c1, c2]]) \n X177^1 , coq.subst-prod [c0] X177^1 X178^1), \n std.assert! (extract-conclusion-params c0 X178^1 X175^1) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]", "current_goal_predicate": "std.do!", "failed_attempts": [], "successful_attempts": [ @@ -145112,8 +140526,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", "rule_loc": [ "File", { @@ -145138,14 +140551,12 @@ }, "siblings": [ { - "goal_text": - "coq.subst-prod [] \n (prod `T` (sort (typ «interleave_context.396»)) c1 \\\n prod `fresh_name_19` (app [global (const «IsSelfA'.phant_axioms»), c1]) \n c2 \\\n app\n [global (indt «IsSelfA.axioms_»), c1, \n app [global (const «Builders_18.HB_unnamed_factory_20»), c1, c2], \n app [global (const «Builders_18.HB_unnamed_factory_22»), c1, c2]]) \n X177^1 , coq.subst-prod [c0] X177^1 X178^1", + "goal_text": "coq.subst-prod [] \n (prod `T` (sort (typ «interleave_context.396»)) c1 \\\n prod `fresh_name_19` (app [global (const «IsSelfA'.phant_axioms»), c1]) \n c2 \\\n app\n [global (indt «IsSelfA.axioms_»), c1, \n app [global (const «Builders_18.HB_unnamed_factory_20»), c1, c2], \n app [global (const «Builders_18.HB_unnamed_factory_22»), c1, c2]]) \n X177^1 , coq.subst-prod [c0] X177^1 X178^1", "goal_id": 1590 }, { "goal_text": "!", "goal_id": 1591 }, { - "goal_text": - "std.do!\n [std.assert! (extract-conclusion-params c0 X178^1 X175^1) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]", + "goal_text": "std.do!\n [std.assert! (extract-conclusion-params c0 X178^1 X175^1) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]", "goal_id": 1592 } ], @@ -145196,13 +140607,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", + "rule_text": "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 108, "column": 0, "character": 3601 @@ -145217,8 +140626,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -145313,13 +140721,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -145411,13 +140817,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -145432,13 +140836,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -145453,13 +140855,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -145474,13 +140874,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -145552,13 +140950,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -145649,13 +141045,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -145689,13 +141083,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -145729,13 +141121,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -145750,13 +141140,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -146056,13 +141444,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -146081,8 +141467,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -146107,13 +141492,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -146128,8 +141511,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -146161,8 +141543,7 @@ "Inference", { "current_goal_id": 1590, - "current_goal_text": - "coq.subst-prod [] \n (prod `T` (sort (typ «interleave_context.396»)) c1 \\\n prod `fresh_name_19` (app [global (const «IsSelfA'.phant_axioms»), c1]) \n c2 \\\n app\n [global (indt «IsSelfA.axioms_»), c1, \n app [global (const «Builders_18.HB_unnamed_factory_20»), c1, c2], \n app [global (const «Builders_18.HB_unnamed_factory_22»), c1, c2]]) \n X177^1 , coq.subst-prod [c0] X177^1 X178^1", + "current_goal_text": "coq.subst-prod [] \n (prod `T` (sort (typ «interleave_context.396»)) c1 \\\n prod `fresh_name_19` (app [global (const «IsSelfA'.phant_axioms»), c1]) \n c2 \\\n app\n [global (indt «IsSelfA.axioms_»), c1, \n app [global (const «Builders_18.HB_unnamed_factory_20»), c1, c2], \n app [global (const «Builders_18.HB_unnamed_factory_22»), c1, c2]]) \n X177^1 , coq.subst-prod [c0] X177^1 X178^1", "current_goal_predicate": ",", "failed_attempts": [], "successful_attempts": [ @@ -146173,8 +141554,7 @@ }, "siblings": [ { - "goal_text": - "coq.subst-prod [] \n (prod `T` (sort (typ «interleave_context.396»)) c1 \\\n prod `fresh_name_19` (app [global (const «IsSelfA'.phant_axioms»), c1]) \n c2 \\\n app\n [global (indt «IsSelfA.axioms_»), c1, \n app [global (const «Builders_18.HB_unnamed_factory_20»), c1, c2], \n app [global (const «Builders_18.HB_unnamed_factory_22»), c1, c2]]) \n X177^1", + "goal_text": "coq.subst-prod [] \n (prod `T` (sort (typ «interleave_context.396»)) c1 \\\n prod `fresh_name_19` (app [global (const «IsSelfA'.phant_axioms»), c1]) \n c2 \\\n app\n [global (indt «IsSelfA.axioms_»), c1, \n app [global (const «Builders_18.HB_unnamed_factory_20»), c1, c2], \n app [global (const «Builders_18.HB_unnamed_factory_22»), c1, c2]]) \n X177^1", "goal_id": 1593 }, { @@ -146234,13 +141614,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", + "rule_text": "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 108, "column": 0, "character": 3601 @@ -146255,8 +141633,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -146351,13 +141728,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -146449,13 +141824,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -146470,13 +141843,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -146491,13 +141862,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -146512,13 +141881,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -146590,13 +141957,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -146687,13 +142052,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -146727,13 +142090,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -146767,13 +142128,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -146788,13 +142147,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -147094,13 +142451,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -147119,8 +142474,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -147145,13 +142499,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -147166,8 +142518,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -147199,8 +142550,7 @@ "Inference", { "current_goal_id": 1593, - "current_goal_text": - "coq.subst-prod [] \n (prod `T` (sort (typ «interleave_context.396»)) c1 \\\n prod `fresh_name_19` (app [global (const «IsSelfA'.phant_axioms»), c1]) \n c2 \\\n app\n [global (indt «IsSelfA.axioms_»), c1, \n app [global (const «Builders_18.HB_unnamed_factory_20»), c1, c2], \n app [global (const «Builders_18.HB_unnamed_factory_22»), c1, c2]]) \n X177^1", + "current_goal_text": "coq.subst-prod [] \n (prod `T` (sort (typ «interleave_context.396»)) c1 \\\n prod `fresh_name_19` (app [global (const «IsSelfA'.phant_axioms»), c1]) \n c2 \\\n app\n [global (indt «IsSelfA.axioms_»), c1, \n app [global (const «Builders_18.HB_unnamed_factory_20»), c1, c2], \n app [global (const «Builders_18.HB_unnamed_factory_22»), c1, c2]]) \n X177^1", "current_goal_predicate": "coq.subst-prod", "failed_attempts": [], "successful_attempts": [ @@ -147304,13 +142654,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", + "rule_text": "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 108, "column": 0, "character": 3601 @@ -147325,8 +142673,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -147421,13 +142768,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -147519,13 +142864,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -147540,13 +142883,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -147561,13 +142902,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -147582,13 +142921,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -147660,13 +142997,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -147757,13 +143092,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -147797,13 +143130,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -147837,13 +143168,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -147858,13 +143187,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -148164,13 +143491,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -148189,8 +143514,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -148215,13 +143539,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -148236,8 +143558,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -148272,13 +143593,11 @@ "cut_victims": [ { "cut_branch_for_goal": { - "goal_text": - "coq.subst-prod [] \n (prod `T` (sort (typ «interleave_context.396»)) c1 \\\n prod `fresh_name_19` (app [global (const «IsSelfA'.phant_axioms»), c1]) \n c2 \\\n app\n [global (indt «IsSelfA.axioms_»), c1, \n app [global (const «Builders_18.HB_unnamed_factory_20»), c1, c2], \n app [global (const «Builders_18.HB_unnamed_factory_22»), c1, c2]]) \n X177^1", + "goal_text": "coq.subst-prod [] \n (prod `T` (sort (typ «interleave_context.396»)) c1 \\\n prod `fresh_name_19` (app [global (const «IsSelfA'.phant_axioms»), c1]) \n c2 \\\n app\n [global (indt «IsSelfA.axioms_»), c1, \n app [global (const «Builders_18.HB_unnamed_factory_20»), c1, c2], \n app [global (const «Builders_18.HB_unnamed_factory_22»), c1, c2]]) \n X177^1", "goal_id": 1593 }, "cut_branch": { - "rule_text": - "(coq.subst-prod A0 (let _ _ A1 A2) A3) :- (!), \n (coq.subst-prod A0 (A2 A1) A3).", + "rule_text": "(coq.subst-prod A0 (let _ _ A1 A2) A3) :- (!), \n (coq.subst-prod A0 (A2 A1) A3).", "rule_loc": [ "File", { @@ -148302,8 +143621,7 @@ "Inference", { "current_goal_id": 1594, - "current_goal_text": - "coq.subst-prod [c0] \n (prod `T` (sort (typ «interleave_context.396»)) c1 \\\n prod `fresh_name_19` (app [global (const «IsSelfA'.phant_axioms»), c1]) \n c2 \\\n app\n [global (indt «IsSelfA.axioms_»), c1, \n app [global (const «Builders_18.HB_unnamed_factory_20»), c1, c2], \n app [global (const «Builders_18.HB_unnamed_factory_22»), c1, c2]]) \n X178^1", + "current_goal_text": "coq.subst-prod [c0] \n (prod `T` (sort (typ «interleave_context.396»)) c1 \\\n prod `fresh_name_19` (app [global (const «IsSelfA'.phant_axioms»), c1]) \n c2 \\\n app\n [global (indt «IsSelfA.axioms_»), c1, \n app [global (const «Builders_18.HB_unnamed_factory_20»), c1, c2], \n app [global (const «Builders_18.HB_unnamed_factory_22»), c1, c2]]) \n X178^1", "current_goal_predicate": "coq.subst-prod", "failed_attempts": [], "successful_attempts": [ @@ -148312,8 +143630,7 @@ "rule": [ "UserRule", { - "rule_text": - "(coq.subst-prod [A0 | A1] (prod _ _ A2) A3) :- (!), \n (coq.subst-prod A1 (A2 A0) A3).", + "rule_text": "(coq.subst-prod [A0 | A1] (prod _ _ A2) A3) :- (!), \n (coq.subst-prod A1 (A2 A0) A3).", "rule_loc": [ "File", { @@ -148338,8 +143655,7 @@ "siblings": [ { "goal_text": "!", "goal_id": 1596 }, { - "goal_text": - "coq.subst-prod [] \n (prod `fresh_name_19` (app [global (const «IsSelfA'.phant_axioms»), c0]) \n c1 \\\n app\n [global (indt «IsSelfA.axioms_»), c0, \n app [global (const «Builders_18.HB_unnamed_factory_20»), c0, c1], \n app [global (const «Builders_18.HB_unnamed_factory_22»), c0, c1]]) \n X178^1", + "goal_text": "coq.subst-prod [] \n (prod `fresh_name_19` (app [global (const «IsSelfA'.phant_axioms»), c0]) \n c1 \\\n app\n [global (indt «IsSelfA.axioms_»), c0, \n app [global (const «Builders_18.HB_unnamed_factory_20»), c0, c1], \n app [global (const «Builders_18.HB_unnamed_factory_22»), c0, c1]]) \n X178^1", "goal_id": 1597 } ], @@ -148352,8 +143668,7 @@ "rule": [ "UserRule", { - "rule_text": - "(coq.subst-prod [A0 | A1] (prod _ _ A2) A3) :- (!), \n (coq.subst-prod A1 (A2 A0) A3).", + "rule_text": "(coq.subst-prod [A0 | A1] (prod _ _ A2) A3) :- (!), \n (coq.subst-prod A1 (A2 A0) A3).", "rule_loc": [ "File", { @@ -148415,13 +143730,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", + "rule_text": "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 108, "column": 0, "character": 3601 @@ -148436,8 +143749,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -148532,13 +143844,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -148630,13 +143940,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -148651,13 +143959,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -148672,13 +143978,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -148693,13 +143997,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -148771,13 +144073,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -148868,13 +144168,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -148908,13 +144206,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -148948,13 +144244,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -148969,13 +144263,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -149275,13 +144567,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -149300,8 +144590,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -149326,13 +144615,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -149347,8 +144634,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -149387,8 +144673,7 @@ "goal_id": 1594 }, "cut_branch": { - "rule_text": - "(coq.subst-prod A0 (let _ _ A1 A2) A3) :- (!), \n (coq.subst-prod A0 (A2 A1) A3).", + "rule_text": "(coq.subst-prod A0 (let _ _ A1 A2) A3) :- (!), \n (coq.subst-prod A0 (A2 A1) A3).", "rule_loc": [ "File", { @@ -149406,8 +144691,7 @@ "goal_id": 1594 }, "cut_branch": { - "rule_text": - "(coq.subst-prod [_ | _] A0 _) :- (!), \n (std.fatal-error-w-data subst-prod: not a product A0).", + "rule_text": "(coq.subst-prod [_ | _] A0 _) :- (!), \n (std.fatal-error-w-data subst-prod: not a product A0).", "rule_loc": [ "File", { @@ -149431,8 +144715,7 @@ "Inference", { "current_goal_id": 1597, - "current_goal_text": - "coq.subst-prod [] \n (prod `fresh_name_19` (app [global (const «IsSelfA'.phant_axioms»), c0]) \n c1 \\\n app\n [global (indt «IsSelfA.axioms_»), c0, \n app [global (const «Builders_18.HB_unnamed_factory_20»), c0, c1], \n app [global (const «Builders_18.HB_unnamed_factory_22»), c0, c1]]) \n X178^1", + "current_goal_text": "coq.subst-prod [] \n (prod `fresh_name_19` (app [global (const «IsSelfA'.phant_axioms»), c0]) \n c1 \\\n app\n [global (indt «IsSelfA.axioms_»), c0, \n app [global (const «Builders_18.HB_unnamed_factory_20»), c0, c1], \n app [global (const «Builders_18.HB_unnamed_factory_22»), c0, c1]]) \n X178^1", "current_goal_predicate": "coq.subst-prod", "failed_attempts": [], "successful_attempts": [ @@ -149493,8 +144776,7 @@ "rule": [ "UserRule", { - "rule_text": - "(coq.subst-prod [A0 | A1] (prod _ _ A2) A3) :- (!), \n (coq.subst-prod A1 (A2 A0) A3).", + "rule_text": "(coq.subst-prod [A0 | A1] (prod _ _ A2) A3) :- (!), \n (coq.subst-prod A1 (A2 A0) A3).", "rule_loc": [ "File", { @@ -149556,13 +144838,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", + "rule_text": "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 108, "column": 0, "character": 3601 @@ -149577,8 +144857,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -149673,13 +144952,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -149771,13 +145048,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -149792,13 +145067,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -149813,13 +145086,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -149834,13 +145105,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -149912,13 +145181,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -150009,13 +145276,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -150049,13 +145314,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -150089,13 +145352,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -150110,13 +145371,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -150416,13 +145675,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -150441,8 +145698,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -150467,13 +145723,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -150488,8 +145742,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -150524,13 +145777,11 @@ "cut_victims": [ { "cut_branch_for_goal": { - "goal_text": - "coq.subst-prod [] \n (prod `fresh_name_19` (app [global (const «IsSelfA'.phant_axioms»), c0]) \n c1 \\\n app\n [global (indt «IsSelfA.axioms_»), c0, \n app [global (const «Builders_18.HB_unnamed_factory_20»), c0, c1], \n app [global (const «Builders_18.HB_unnamed_factory_22»), c0, c1]]) \n X178^1", + "goal_text": "coq.subst-prod [] \n (prod `fresh_name_19` (app [global (const «IsSelfA'.phant_axioms»), c0]) \n c1 \\\n app\n [global (indt «IsSelfA.axioms_»), c0, \n app [global (const «Builders_18.HB_unnamed_factory_20»), c0, c1], \n app [global (const «Builders_18.HB_unnamed_factory_22»), c0, c1]]) \n X178^1", "goal_id": 1597 }, "cut_branch": { - "rule_text": - "(coq.subst-prod A0 (let _ _ A1 A2) A3) :- (!), \n (coq.subst-prod A0 (A2 A1) A3).", + "rule_text": "(coq.subst-prod A0 (let _ _ A1 A2) A3) :- (!), \n (coq.subst-prod A0 (A2 A1) A3).", "rule_loc": [ "File", { @@ -150560,8 +145811,7 @@ "Inference", { "current_goal_id": 1592, - "current_goal_text": - "std.do!\n [std.assert!\n (extract-conclusion-params c0 \n (prod `fresh_name_19` \n (app [global (const «IsSelfA'.phant_axioms»), c0]) c1 \\\n app\n [global (indt «IsSelfA.axioms_»), c0, \n app [global (const «Builders_18.HB_unnamed_factory_20»), c0, c1], \n app [global (const «Builders_18.HB_unnamed_factory_22»), c0, c1]]) \n X175^1) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]", + "current_goal_text": "std.do!\n [std.assert!\n (extract-conclusion-params c0 \n (prod `fresh_name_19` \n (app [global (const «IsSelfA'.phant_axioms»), c0]) c1 \\\n app\n [global (indt «IsSelfA.axioms_»), c0, \n app [global (const «Builders_18.HB_unnamed_factory_20»), c0, c1], \n app [global (const «Builders_18.HB_unnamed_factory_22»), c0, c1]]) \n X175^1) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]", "current_goal_predicate": "std.do!", "failed_attempts": [], "successful_attempts": [ @@ -150570,8 +145820,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", "rule_loc": [ "File", { @@ -150593,8 +145842,7 @@ }, "siblings": [ { - "goal_text": - "std.assert!\n (extract-conclusion-params c0 \n (prod `fresh_name_19` \n (app [global (const «IsSelfA'.phant_axioms»), c0]) c1 \\\n app\n [global (indt «IsSelfA.axioms_»), c0, \n app [global (const «Builders_18.HB_unnamed_factory_20»), c0, c1], \n app [global (const «Builders_18.HB_unnamed_factory_22»), c0, c1]]) \n X175^1) \n The conclusion of a builder is a mixin whose parameters depend on other mixins", + "goal_text": "std.assert!\n (extract-conclusion-params c0 \n (prod `fresh_name_19` \n (app [global (const «IsSelfA'.phant_axioms»), c0]) c1 \\\n app\n [global (indt «IsSelfA.axioms_»), c0, \n app [global (const «Builders_18.HB_unnamed_factory_20»), c0, c1], \n app [global (const «Builders_18.HB_unnamed_factory_22»), c0, c1]]) \n X175^1) \n The conclusion of a builder is a mixin whose parameters depend on other mixins", "goal_id": 1599 }, { "goal_text": "!", "goal_id": 1600 }, @@ -150666,13 +145914,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", + "rule_text": "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 108, "column": 0, "character": 3601 @@ -150687,8 +145933,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -150783,13 +146028,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -150881,13 +146124,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -150902,13 +146143,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -150923,13 +146162,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -150944,13 +146181,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -151022,13 +146257,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -151119,13 +146352,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -151159,13 +146390,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -151199,13 +146428,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -151220,13 +146447,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -151526,13 +146751,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -151551,8 +146774,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -151577,13 +146799,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -151598,8 +146818,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -151631,8 +146850,7 @@ "Inference", { "current_goal_id": 1599, - "current_goal_text": - "std.assert!\n (extract-conclusion-params c0 \n (prod `fresh_name_19` \n (app [global (const «IsSelfA'.phant_axioms»), c0]) c1 \\\n app\n [global (indt «IsSelfA.axioms_»), c0, \n app [global (const «Builders_18.HB_unnamed_factory_20»), c0, c1], \n app [global (const «Builders_18.HB_unnamed_factory_22»), c0, c1]]) \n X175^1) \n The conclusion of a builder is a mixin whose parameters depend on other mixins", + "current_goal_text": "std.assert!\n (extract-conclusion-params c0 \n (prod `fresh_name_19` \n (app [global (const «IsSelfA'.phant_axioms»), c0]) c1 \\\n app\n [global (indt «IsSelfA.axioms_»), c0, \n app [global (const «Builders_18.HB_unnamed_factory_20»), c0, c1], \n app [global (const «Builders_18.HB_unnamed_factory_22»), c0, c1]]) \n X175^1) \n The conclusion of a builder is a mixin whose parameters depend on other mixins", "current_goal_predicate": "std.assert!", "failed_attempts": [], "successful_attempts": [ @@ -151641,8 +146859,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", + "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", "rule_loc": [ "File", { @@ -151667,8 +146884,7 @@ }, "siblings": [ { - "goal_text": - "extract-conclusion-params c0 \n (prod `fresh_name_19` (app [global (const «IsSelfA'.phant_axioms»), c0]) \n c1 \\\n app\n [global (indt «IsSelfA.axioms_»), c0, \n app [global (const «Builders_18.HB_unnamed_factory_20»), c0, c1], \n app [global (const «Builders_18.HB_unnamed_factory_22»), c0, c1]]) \n X175^1 ;\n std.fatal-error-w-data\n The conclusion of a builder is a mixin whose parameters depend on other mixins \n (extract-conclusion-params c0 \n (prod `fresh_name_19` \n (app [global (const «IsSelfA'.phant_axioms»), c0]) c1 \\\n app\n [global (indt «IsSelfA.axioms_»), c0, \n app [global (const «Builders_18.HB_unnamed_factory_20»), c0, c1], \n app [global (const «Builders_18.HB_unnamed_factory_22»), c0, c1]]) \n X175^1)", + "goal_text": "extract-conclusion-params c0 \n (prod `fresh_name_19` (app [global (const «IsSelfA'.phant_axioms»), c0]) \n c1 \\\n app\n [global (indt «IsSelfA.axioms_»), c0, \n app [global (const «Builders_18.HB_unnamed_factory_20»), c0, c1], \n app [global (const «Builders_18.HB_unnamed_factory_22»), c0, c1]]) \n X175^1 ;\n std.fatal-error-w-data\n The conclusion of a builder is a mixin whose parameters depend on other mixins \n (extract-conclusion-params c0 \n (prod `fresh_name_19` \n (app [global (const «IsSelfA'.phant_axioms»), c0]) c1 \\\n app\n [global (indt «IsSelfA.axioms_»), c0, \n app [global (const «Builders_18.HB_unnamed_factory_20»), c0, c1], \n app [global (const «Builders_18.HB_unnamed_factory_22»), c0, c1]]) \n X175^1)", "goal_id": 1602 }, { "goal_text": "!", "goal_id": 1603 } @@ -151682,8 +146898,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", + "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", "rule_loc": [ "File", { @@ -151759,13 +146974,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", + "rule_text": "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 108, "column": 0, "character": 3601 @@ -151780,8 +146993,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -151876,13 +147088,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -151974,13 +147184,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -151995,13 +147203,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -152016,13 +147222,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -152037,13 +147241,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -152115,13 +147317,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -152212,13 +147412,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -152252,13 +147450,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -152292,13 +147488,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -152313,13 +147507,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -152619,13 +147811,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -152644,8 +147834,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -152670,13 +147859,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -152691,8 +147878,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -152724,8 +147910,7 @@ "Inference", { "current_goal_id": 1602, - "current_goal_text": - "extract-conclusion-params c0 \n (prod `fresh_name_19` (app [global (const «IsSelfA'.phant_axioms»), c0]) \n c1 \\\n app\n [global (indt «IsSelfA.axioms_»), c0, \n app [global (const «Builders_18.HB_unnamed_factory_20»), c0, c1], \n app [global (const «Builders_18.HB_unnamed_factory_22»), c0, c1]]) \n X175^1 ;\n std.fatal-error-w-data\n The conclusion of a builder is a mixin whose parameters depend on other mixins \n (extract-conclusion-params c0 \n (prod `fresh_name_19` \n (app [global (const «IsSelfA'.phant_axioms»), c0]) c1 \\\n app\n [global (indt «IsSelfA.axioms_»), c0, \n app [global (const «Builders_18.HB_unnamed_factory_20»), c0, c1], \n app [global (const «Builders_18.HB_unnamed_factory_22»), c0, c1]]) \n X175^1)", + "current_goal_text": "extract-conclusion-params c0 \n (prod `fresh_name_19` (app [global (const «IsSelfA'.phant_axioms»), c0]) \n c1 \\\n app\n [global (indt «IsSelfA.axioms_»), c0, \n app [global (const «Builders_18.HB_unnamed_factory_20»), c0, c1], \n app [global (const «Builders_18.HB_unnamed_factory_22»), c0, c1]]) \n X175^1 ;\n std.fatal-error-w-data\n The conclusion of a builder is a mixin whose parameters depend on other mixins \n (extract-conclusion-params c0 \n (prod `fresh_name_19` \n (app [global (const «IsSelfA'.phant_axioms»), c0]) c1 \\\n app\n [global (indt «IsSelfA.axioms_»), c0, \n app [global (const «Builders_18.HB_unnamed_factory_20»), c0, c1], \n app [global (const «Builders_18.HB_unnamed_factory_22»), c0, c1]]) \n X175^1)", "current_goal_predicate": ";", "failed_attempts": [], "successful_attempts": [ @@ -152755,8 +147940,7 @@ }, "siblings": [ { - "goal_text": - "extract-conclusion-params c0 \n (prod `fresh_name_19` (app [global (const «IsSelfA'.phant_axioms»), c0]) \n c1 \\\n app\n [global (indt «IsSelfA.axioms_»), c0, \n app [global (const «Builders_18.HB_unnamed_factory_20»), c0, c1], \n app [global (const «Builders_18.HB_unnamed_factory_22»), c0, c1]]) \n X175^1", + "goal_text": "extract-conclusion-params c0 \n (prod `fresh_name_19` (app [global (const «IsSelfA'.phant_axioms»), c0]) \n c1 \\\n app\n [global (indt «IsSelfA.axioms_»), c0, \n app [global (const «Builders_18.HB_unnamed_factory_20»), c0, c1], \n app [global (const «Builders_18.HB_unnamed_factory_22»), c0, c1]]) \n X175^1", "goal_id": 1604 } ], @@ -152788,8 +147972,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", + "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", "rule_loc": [ "File", { @@ -152865,13 +148048,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", + "rule_text": "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 108, "column": 0, "character": 3601 @@ -152886,8 +148067,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -152982,13 +148162,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -153080,13 +148258,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -153101,13 +148277,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -153122,13 +148296,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -153143,13 +148315,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -153221,13 +148391,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -153318,13 +148486,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -153358,13 +148524,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -153398,13 +148562,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -153419,13 +148581,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -153725,13 +148885,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -153750,8 +148908,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -153776,13 +148933,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -153797,8 +148952,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -153830,8 +148984,7 @@ "Inference", { "current_goal_id": 1604, - "current_goal_text": - "extract-conclusion-params c0 \n (prod `fresh_name_19` (app [global (const «IsSelfA'.phant_axioms»), c0]) \n c1 \\\n app\n [global (indt «IsSelfA.axioms_»), c0, \n app [global (const «Builders_18.HB_unnamed_factory_20»), c0, c1], \n app [global (const «Builders_18.HB_unnamed_factory_22»), c0, c1]]) \n X175^1", + "current_goal_text": "extract-conclusion-params c0 \n (prod `fresh_name_19` (app [global (const «IsSelfA'.phant_axioms»), c0]) \n c1 \\\n app\n [global (indt «IsSelfA.axioms_»), c0, \n app [global (const «Builders_18.HB_unnamed_factory_20»), c0, c1], \n app [global (const «Builders_18.HB_unnamed_factory_22»), c0, c1]]) \n X175^1", "current_goal_predicate": "extract-conclusion-params", "failed_attempts": [], "successful_attempts": [ @@ -153840,13 +148993,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -153870,8 +149021,7 @@ "siblings": [ { "goal_text": "!", "goal_id": 1605 }, { - "goal_text": - "pi c1 \\\n decl c1 _ (app [global (const «IsSelfA'.phant_axioms»), c0]) =>\n extract-conclusion-params c0 \n (app\n [global (indt «IsSelfA.axioms_»), c0, \n app [global (const «Builders_18.HB_unnamed_factory_20»), c0, c1], \n app [global (const «Builders_18.HB_unnamed_factory_22»), c0, c1]]) \n X175^1", + "goal_text": "pi c1 \\\n decl c1 _ (app [global (const «IsSelfA'.phant_axioms»), c0]) =>\n extract-conclusion-params c0 \n (app\n [global (indt «IsSelfA.axioms_»), c0, \n app [global (const «Builders_18.HB_unnamed_factory_20»), c0, c1], \n app [global (const «Builders_18.HB_unnamed_factory_22»), c0, c1]]) \n X175^1", "goal_id": 1606 } ], @@ -153884,13 +149034,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -153924,8 +149072,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", + "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", "rule_loc": [ "File", { @@ -154001,13 +149148,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", + "rule_text": "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 108, "column": 0, "character": 3601 @@ -154022,8 +149167,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -154118,13 +149262,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -154216,13 +149358,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -154237,13 +149377,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -154258,13 +149396,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -154279,13 +149415,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -154357,13 +149491,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -154454,13 +149586,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -154494,13 +149624,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -154534,13 +149662,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -154555,13 +149681,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -154861,13 +149985,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -154886,8 +150008,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -154912,13 +150033,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -154933,8 +150052,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -154969,18 +150087,15 @@ "cut_victims": [ { "cut_branch_for_goal": { - "goal_text": - "extract-conclusion-params c0 \n (prod `fresh_name_19` (app [global (const «IsSelfA'.phant_axioms»), c0]) \n c1 \\\n app\n [global (indt «IsSelfA.axioms_»), c0, \n app [global (const «Builders_18.HB_unnamed_factory_20»), c0, c1], \n app [global (const «Builders_18.HB_unnamed_factory_22»), c0, c1]]) \n X175^1", + "goal_text": "extract-conclusion-params c0 \n (prod `fresh_name_19` (app [global (const «IsSelfA'.phant_axioms»), c0]) \n c1 \\\n app\n [global (indt «IsSelfA.axioms_»), c0, \n app [global (const «Builders_18.HB_unnamed_factory_20»), c0, c1], \n app [global (const «Builders_18.HB_unnamed_factory_22»), c0, c1]]) \n X175^1", "goal_id": 1604 }, "cut_branch": { - "rule_text": - "(extract-conclusion-params A0 (app [global A1 | A2]) A3) :- (!), \n (factory-alias->gref A1 A4), (factory-nparams A4 A5), \n (std.map A2 (copy-pack-holes A0) A6), (std.spy (std.take A5 A6 A3)).", + "rule_text": "(extract-conclusion-params A0 (app [global A1 | A2]) A3) :- (!), \n (factory-alias->gref A1 A4), (factory-nparams A4 A5), \n (std.map A2 (copy-pack-holes A0) A6), (std.spy (std.take A5 A6 A3)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 117, "column": 0, "character": 4090 @@ -154990,18 +150105,15 @@ }, { "cut_branch_for_goal": { - "goal_text": - "extract-conclusion-params c0 \n (prod `fresh_name_19` (app [global (const «IsSelfA'.phant_axioms»), c0]) \n c1 \\\n app\n [global (indt «IsSelfA.axioms_»), c0, \n app [global (const «Builders_18.HB_unnamed_factory_20»), c0, c1], \n app [global (const «Builders_18.HB_unnamed_factory_22»), c0, c1]]) \n X175^1", + "goal_text": "extract-conclusion-params c0 \n (prod `fresh_name_19` (app [global (const «IsSelfA'.phant_axioms»), c0]) \n c1 \\\n app\n [global (indt «IsSelfA.axioms_»), c0, \n app [global (const «Builders_18.HB_unnamed_factory_20»), c0, c1], \n app [global (const «Builders_18.HB_unnamed_factory_22»), c0, c1]]) \n X175^1", "goal_id": 1604 }, "cut_branch": { - "rule_text": - "(extract-conclusion-params A0 A1 A2) :- (whd1 A1 A3), (!), \n (extract-conclusion-params A0 A3 A2).", + "rule_text": "(extract-conclusion-params A0 A1 A2) :- (whd1 A1 A3), (!), \n (extract-conclusion-params A0 A3 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 122, "column": 0, "character": 4303 @@ -155021,8 +150133,7 @@ "Inference", { "current_goal_id": 1606, - "current_goal_text": - "pi c1 \\\n decl c1 _ (app [global (const «IsSelfA'.phant_axioms»), c0]) =>\n extract-conclusion-params c0 \n (app\n [global (indt «IsSelfA.axioms_»), c0, \n app [global (const «Builders_18.HB_unnamed_factory_20»), c0, c1], \n app [global (const «Builders_18.HB_unnamed_factory_22»), c0, c1]]) \n X175^1", + "current_goal_text": "pi c1 \\\n decl c1 _ (app [global (const «IsSelfA'.phant_axioms»), c0]) =>\n extract-conclusion-params c0 \n (app\n [global (indt «IsSelfA.axioms_»), c0, \n app [global (const «Builders_18.HB_unnamed_factory_20»), c0, c1], \n app [global (const «Builders_18.HB_unnamed_factory_22»), c0, c1]]) \n X175^1", "current_goal_predicate": "pi", "failed_attempts": [], "successful_attempts": [ @@ -155033,8 +150144,7 @@ }, "siblings": [ { - "goal_text": - "decl c1 _ (app [global (const «IsSelfA'.phant_axioms»), c0]) =>\n extract-conclusion-params c0 \n (app\n [global (indt «IsSelfA.axioms_»), c0, \n app [global (const «Builders_18.HB_unnamed_factory_20»), c0, c1], \n app [global (const «Builders_18.HB_unnamed_factory_22»), c0, c1]]) \n X175^1", + "goal_text": "decl c1 _ (app [global (const «IsSelfA'.phant_axioms»), c0]) =>\n extract-conclusion-params c0 \n (app\n [global (indt «IsSelfA.axioms_»), c0, \n app [global (const «Builders_18.HB_unnamed_factory_20»), c0, c1], \n app [global (const «Builders_18.HB_unnamed_factory_22»), c0, c1]]) \n X175^1", "goal_id": 1607 } ], @@ -155052,13 +150162,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -155092,8 +150200,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", + "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", "rule_loc": [ "File", { @@ -155169,13 +150276,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", + "rule_text": "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 108, "column": 0, "character": 3601 @@ -155190,8 +150295,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -155286,13 +150390,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -155384,13 +150486,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -155405,13 +150505,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -155426,13 +150524,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -155447,13 +150543,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -155525,13 +150619,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -155622,13 +150714,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -155662,13 +150752,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -155702,13 +150790,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -155723,13 +150809,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -156029,13 +151113,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -156054,8 +151136,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -156080,13 +151161,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -156101,8 +151180,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -156134,8 +151212,7 @@ "Inference", { "current_goal_id": 1607, - "current_goal_text": - "decl c1 _ (app [global (const «IsSelfA'.phant_axioms»), c0]) =>\n extract-conclusion-params c0 \n (app\n [global (indt «IsSelfA.axioms_»), c0, \n app [global (const «Builders_18.HB_unnamed_factory_20»), c0, c1], \n app [global (const «Builders_18.HB_unnamed_factory_22»), c0, c1]]) \n X175^1", + "current_goal_text": "decl c1 _ (app [global (const «IsSelfA'.phant_axioms»), c0]) =>\n extract-conclusion-params c0 \n (app\n [global (indt «IsSelfA.axioms_»), c0, \n app [global (const «Builders_18.HB_unnamed_factory_20»), c0, c1], \n app [global (const «Builders_18.HB_unnamed_factory_22»), c0, c1]]) \n X175^1", "current_goal_predicate": "=>", "failed_attempts": [], "successful_attempts": [ @@ -156146,8 +151223,7 @@ }, "siblings": [ { - "goal_text": - "extract-conclusion-params c0 \n (app\n [global (indt «IsSelfA.axioms_»), c0, \n app [global (const «Builders_18.HB_unnamed_factory_20»), c0, c1], \n app [global (const «Builders_18.HB_unnamed_factory_22»), c0, c1]]) \n X175^1", + "goal_text": "extract-conclusion-params c0 \n (app\n [global (indt «IsSelfA.axioms_»), c0, \n app [global (const «Builders_18.HB_unnamed_factory_20»), c0, c1], \n app [global (const «Builders_18.HB_unnamed_factory_22»), c0, c1]]) \n X175^1", "goal_id": 1608 } ], @@ -156170,13 +151246,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -156210,8 +151284,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", + "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", "rule_loc": [ "File", { @@ -156287,13 +151360,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", + "rule_text": "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 108, "column": 0, "character": 3601 @@ -156308,8 +151379,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -156404,13 +151474,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -156502,13 +151570,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -156523,13 +151589,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -156544,13 +151608,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -156565,13 +151627,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -156643,13 +151703,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -156740,13 +151798,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -156780,13 +151836,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -156820,13 +151874,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -156841,13 +151893,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -157147,13 +152197,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -157172,8 +152220,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -157198,13 +152245,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -157219,8 +152264,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -157252,21 +152296,18 @@ "Inference", { "current_goal_id": 1608, - "current_goal_text": - "extract-conclusion-params c0 \n (app\n [global (indt «IsSelfA.axioms_»), c0, \n app [global (const «Builders_18.HB_unnamed_factory_20»), c0, c1], \n app [global (const «Builders_18.HB_unnamed_factory_22»), c0, c1]]) \n X175^1", + "current_goal_text": "extract-conclusion-params c0 \n (app\n [global (indt «IsSelfA.axioms_»), c0, \n app [global (const «Builders_18.HB_unnamed_factory_20»), c0, c1], \n app [global (const «Builders_18.HB_unnamed_factory_22»), c0, c1]]) \n X175^1", "current_goal_predicate": "extract-conclusion-params", "failed_attempts": [ { "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (app [global A1 | A2]) A3) :- (!), \n (factory-alias->gref A1 A4), (factory-nparams A4 A5), \n (std.map A2 (copy-pack-holes A0) A6), (std.spy (std.take A5 A6 A3)).", + "rule_text": "(extract-conclusion-params A0 (app [global A1 | A2]) A3) :- (!), \n (factory-alias->gref A1 A4), (factory-nparams A4 A5), \n (std.map A2 (copy-pack-holes A0) A6), (std.spy (std.take A5 A6 A3)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 117, "column": 0, "character": 4090 @@ -157291,13 +152332,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -157316,8 +152355,7 @@ "siblings": [ { "goal_text": "!", "goal_id": 1609 }, { - "goal_text": - "factory-alias->gref (indt «IsSelfA.axioms_») X181^2", + "goal_text": "factory-alias->gref (indt «IsSelfA.axioms_») X181^2", "goal_id": 1610 }, { @@ -157325,8 +152363,7 @@ "goal_id": 1611 }, { - "goal_text": - "std.map\n [c0, app [global (const «Builders_18.HB_unnamed_factory_20»), c0, c1], \n app [global (const «Builders_18.HB_unnamed_factory_22»), c0, c1]] \n (copy-pack-holes c0) X183^2", + "goal_text": "std.map\n [c0, app [global (const «Builders_18.HB_unnamed_factory_20»), c0, c1], \n app [global (const «Builders_18.HB_unnamed_factory_22»), c0, c1]] \n (copy-pack-holes c0) X183^2", "goal_id": 1612 }, { @@ -157343,13 +152380,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -157374,13 +152409,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -157414,8 +152447,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", + "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", "rule_loc": [ "File", { @@ -157491,13 +152523,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", + "rule_text": "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 108, "column": 0, "character": 3601 @@ -157512,8 +152542,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -157608,13 +152637,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -157706,13 +152733,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -157727,13 +152752,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -157748,13 +152771,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -157769,13 +152790,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -157847,13 +152866,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -157944,13 +152961,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -157984,13 +152999,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -158024,13 +153037,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -158045,13 +153056,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -158351,13 +153360,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -158376,8 +153383,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -158402,13 +153408,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -158423,8 +153427,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -158459,18 +153462,15 @@ "cut_victims": [ { "cut_branch_for_goal": { - "goal_text": - "extract-conclusion-params c0 \n (app\n [global (indt «IsSelfA.axioms_»), c0, \n app [global (const «Builders_18.HB_unnamed_factory_20»), c0, c1], \n app [global (const «Builders_18.HB_unnamed_factory_22»), c0, c1]]) \n X175^1", + "goal_text": "extract-conclusion-params c0 \n (app\n [global (indt «IsSelfA.axioms_»), c0, \n app [global (const «Builders_18.HB_unnamed_factory_20»), c0, c1], \n app [global (const «Builders_18.HB_unnamed_factory_22»), c0, c1]]) \n X175^1", "goal_id": 1608 }, "cut_branch": { - "rule_text": - "(extract-conclusion-params A0 A1 A2) :- (whd1 A1 A3), (!), \n (extract-conclusion-params A0 A3 A2).", + "rule_text": "(extract-conclusion-params A0 A1 A2) :- (whd1 A1 A3), (!), \n (extract-conclusion-params A0 A3 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 122, "column": 0, "character": 4303 @@ -158490,8 +153490,7 @@ "Inference", { "current_goal_id": 1610, - "current_goal_text": - "factory-alias->gref (indt «IsSelfA.axioms_») X181^2", + "current_goal_text": "factory-alias->gref (indt «IsSelfA.axioms_») X181^2", "current_goal_predicate": "factory-alias->gref", "failed_attempts": [], "successful_attempts": [ @@ -158500,13 +153499,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-alias->gref A0 A1) :- (phant-abbrev A1 A0 _), (!).", + "rule_text": "(factory-alias->gref A0 A1) :- (phant-abbrev A1 A0 _), (!).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 74, "column": 0, "character": 2385 @@ -158521,8 +153518,7 @@ }, "siblings": [ { - "goal_text": - "phant-abbrev X181^2 (indt «IsSelfA.axioms_») _", + "goal_text": "phant-abbrev X181^2 (indt «IsSelfA.axioms_») _", "goal_id": 1614 }, { "goal_text": "!", "goal_id": 1615 } @@ -158536,13 +153532,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-alias->gref A0 A1) :- (phant-abbrev A1 A0 _), (!).", + "rule_text": "(factory-alias->gref A0 A1) :- (phant-abbrev A1 A0 _), (!).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 74, "column": 0, "character": 2385 @@ -158557,13 +153551,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -158588,13 +153580,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -158628,8 +153618,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", + "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", "rule_loc": [ "File", { @@ -158705,13 +153694,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", + "rule_text": "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 108, "column": 0, "character": 3601 @@ -158726,8 +153713,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -158822,13 +153808,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -158920,13 +153904,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -158941,13 +153923,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -158962,13 +153942,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -158983,13 +153961,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -159061,13 +154037,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -159158,13 +154132,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -159198,13 +154170,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -159238,13 +154208,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -159259,13 +154227,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -159565,13 +154531,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -159590,8 +154554,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -159616,13 +154579,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -159637,8 +154598,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -159670,16 +154630,14 @@ "Inference", { "current_goal_id": 1614, - "current_goal_text": - "phant-abbrev X181^2 (indt «IsSelfA.axioms_») _", + "current_goal_text": "phant-abbrev X181^2 (indt «IsSelfA.axioms_») _", "current_goal_predicate": "phant-abbrev", "failed_attempts": [ { "rule": [ "UserRule", { - "rule_text": - "(phant-abbrev (indt «HasA.axioms_») (const «HasA.phant_axioms») \n «interleave_context.HasA.axioms») :- .", + "rule_text": "(phant-abbrev (indt «HasA.axioms_») (const «HasA.phant_axioms») \n «interleave_context.HasA.axioms») :- .", "rule_loc": [ "File", { @@ -159703,8 +154661,7 @@ "rule": [ "UserRule", { - "rule_text": - "(phant-abbrev (indc «HasA.Axioms_») (const «HasA.phant_Build») \n «interleave_context.HasA.Build») :- .", + "rule_text": "(phant-abbrev (indc «HasA.Axioms_») (const «HasA.phant_Build») \n «interleave_context.HasA.Build») :- .", "rule_loc": [ "File", { @@ -159728,8 +154685,7 @@ "rule": [ "UserRule", { - "rule_text": - "(phant-abbrev (indt «HasB.axioms_») (const «HasB.phant_axioms») \n «interleave_context.HasB.axioms») :- .", + "rule_text": "(phant-abbrev (indt «HasB.axioms_») (const «HasB.phant_axioms») \n «interleave_context.HasB.axioms») :- .", "rule_loc": [ "File", { @@ -159753,8 +154709,7 @@ "rule": [ "UserRule", { - "rule_text": - "(phant-abbrev (indc «HasB.Axioms_») (const «HasB.phant_Build») \n «interleave_context.HasB.Build») :- .", + "rule_text": "(phant-abbrev (indc «HasB.Axioms_») (const «HasB.phant_Build») \n «interleave_context.HasB.Build») :- .", "rule_loc": [ "File", { @@ -159778,8 +154733,7 @@ "rule": [ "UserRule", { - "rule_text": - "(phant-abbrev (indt «IsSelfA.axioms_») (const «IsSelfA.phant_axioms») \n «interleave_context.IsSelfA.axioms») :- .", + "rule_text": "(phant-abbrev (indt «IsSelfA.axioms_») (const «IsSelfA.phant_axioms») \n «interleave_context.IsSelfA.axioms») :- .", "rule_loc": [ "File", { @@ -159803,8 +154757,7 @@ "rule": [ "UserRule", { - "rule_text": - "(phant-abbrev (indc «IsSelfA.Axioms_») (const «IsSelfA.phant_Build») \n «interleave_context.IsSelfA.Build») :- .", + "rule_text": "(phant-abbrev (indc «IsSelfA.Axioms_») (const «IsSelfA.phant_Build») \n «interleave_context.IsSelfA.Build») :- .", "rule_loc": [ "File", { @@ -159828,8 +154781,7 @@ "rule": [ "UserRule", { - "rule_text": - "(phant-abbrev (indt «IsSelfA'.axioms_») (const «IsSelfA'.phant_axioms») \n «interleave_context.IsSelfA'.axioms») :- .", + "rule_text": "(phant-abbrev (indt «IsSelfA'.axioms_») (const «IsSelfA'.phant_axioms») \n «interleave_context.IsSelfA'.axioms») :- .", "rule_loc": [ "File", { @@ -159853,8 +154805,7 @@ "rule": [ "UserRule", { - "rule_text": - "(phant-abbrev (indc «IsSelfA'.Axioms_») (const «IsSelfA'.phant_Build») \n «interleave_context.IsSelfA'.Build») :- .", + "rule_text": "(phant-abbrev (indc «IsSelfA'.Axioms_») (const «IsSelfA'.phant_Build») \n «interleave_context.IsSelfA'.Build») :- .", "rule_loc": [ "File", { @@ -159882,8 +154833,7 @@ "rule": [ "UserRule", { - "rule_text": - "(phant-abbrev (indt «HasA.axioms_») (const «HasA.phant_axioms») \n «interleave_context.HasA.axioms») :- .", + "rule_text": "(phant-abbrev (indt «HasA.axioms_») (const «HasA.phant_axioms») \n «interleave_context.HasA.axioms») :- .", "rule_loc": [ "File", { @@ -159902,13 +154852,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-alias->gref A0 A1) :- (phant-abbrev A1 A0 _), (!).", + "rule_text": "(factory-alias->gref A0 A1) :- (phant-abbrev A1 A0 _), (!).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 74, "column": 0, "character": 2385 @@ -159923,13 +154871,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -159954,13 +154900,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -159994,8 +154938,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", + "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", "rule_loc": [ "File", { @@ -160071,13 +155014,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", + "rule_text": "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 108, "column": 0, "character": 3601 @@ -160092,8 +155033,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -160188,13 +155128,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -160286,13 +155224,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -160307,13 +155243,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -160328,13 +155262,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -160349,13 +155281,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -160427,13 +155357,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -160524,13 +155452,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -160564,13 +155490,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -160604,13 +155528,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -160625,13 +155547,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -160931,13 +155851,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -160956,8 +155874,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -160982,13 +155899,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -161003,8 +155918,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -161036,8 +155950,7 @@ "Inference", { "current_goal_id": 1610, - "current_goal_text": - "factory-alias->gref (indt «IsSelfA.axioms_») X181^2", + "current_goal_text": "factory-alias->gref (indt «IsSelfA.axioms_») X181^2", "current_goal_predicate": "factory-alias->gref", "failed_attempts": [], "successful_attempts": [ @@ -161046,13 +155959,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-alias->gref A0 A0) :- (phant-abbrev A0 _ _), (!).", + "rule_text": "(factory-alias->gref A0 A0) :- (phant-abbrev A0 _ _), (!).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 75, "column": 0, "character": 2443 @@ -161081,13 +155992,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-alias->gref A0 A0) :- (phant-abbrev A0 _ _), (!).", + "rule_text": "(factory-alias->gref A0 A0) :- (phant-abbrev A0 _ _), (!).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 75, "column": 0, "character": 2443 @@ -161102,13 +156011,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -161133,13 +156040,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -161173,8 +156078,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", + "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", "rule_loc": [ "File", { @@ -161250,13 +156154,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", + "rule_text": "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 108, "column": 0, "character": 3601 @@ -161271,8 +156173,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -161367,13 +156268,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -161465,13 +156364,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -161486,13 +156383,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -161507,13 +156402,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -161528,13 +156421,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -161606,13 +156497,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -161703,13 +156592,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -161743,13 +156630,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -161783,13 +156668,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -161804,13 +156687,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -162110,13 +156991,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -162135,8 +157014,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -162161,13 +157039,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -162182,8 +157058,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -162222,8 +157097,7 @@ "rule": [ "UserRule", { - "rule_text": - "(phant-abbrev (indt «HasB.axioms_») (const «HasB.phant_axioms») \n «interleave_context.HasB.axioms») :- .", + "rule_text": "(phant-abbrev (indt «HasB.axioms_») (const «HasB.phant_axioms») \n «interleave_context.HasB.axioms») :- .", "rule_loc": [ "File", { @@ -162246,8 +157120,7 @@ "rule": [ "UserRule", { - "rule_text": - "(phant-abbrev (indt «IsSelfA.axioms_») (const «IsSelfA.phant_axioms») \n «interleave_context.IsSelfA.axioms») :- .", + "rule_text": "(phant-abbrev (indt «IsSelfA.axioms_») (const «IsSelfA.phant_axioms») \n «interleave_context.IsSelfA.axioms») :- .", "rule_loc": [ "File", { @@ -162268,8 +157141,7 @@ "rule": [ "UserRule", { - "rule_text": - "(phant-abbrev (indt «HasA.axioms_») (const «HasA.phant_axioms») \n «interleave_context.HasA.axioms») :- .", + "rule_text": "(phant-abbrev (indt «HasA.axioms_») (const «HasA.phant_axioms») \n «interleave_context.HasA.axioms») :- .", "rule_loc": [ "File", { @@ -162298,8 +157170,7 @@ "rule": [ "UserRule", { - "rule_text": - "(phant-abbrev (indt «HasA.axioms_») (const «HasA.phant_axioms») \n «interleave_context.HasA.axioms») :- .", + "rule_text": "(phant-abbrev (indt «HasA.axioms_») (const «HasA.phant_axioms») \n «interleave_context.HasA.axioms») :- .", "rule_loc": [ "File", { @@ -162318,13 +157189,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-alias->gref A0 A0) :- (phant-abbrev A0 _ _), (!).", + "rule_text": "(factory-alias->gref A0 A0) :- (phant-abbrev A0 _ _), (!).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 75, "column": 0, "character": 2443 @@ -162339,13 +157208,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -162370,13 +157237,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -162410,8 +157275,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", + "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", "rule_loc": [ "File", { @@ -162487,13 +157351,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", + "rule_text": "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 108, "column": 0, "character": 3601 @@ -162508,8 +157370,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -162604,13 +157465,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -162702,13 +157561,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -162723,13 +157580,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -162744,13 +157599,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -162765,13 +157618,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -162843,13 +157694,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -162940,13 +157789,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -162980,13 +157827,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -163020,13 +157865,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -163041,13 +157884,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -163347,13 +158188,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -163372,8 +158211,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -163398,13 +158236,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -163419,8 +158255,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -163459,8 +158294,7 @@ "goal_id": 1616 }, "cut_branch": { - "rule_text": - "(phant-abbrev (indt «IsSelfA'.axioms_») (const «IsSelfA'.phant_axioms») \n «interleave_context.IsSelfA'.axioms») :- .", + "rule_text": "(phant-abbrev (indt «IsSelfA'.axioms_») (const «IsSelfA'.phant_axioms») \n «interleave_context.IsSelfA'.axioms») :- .", "rule_loc": [ "File", { @@ -163474,13 +158308,11 @@ }, { "cut_branch_for_goal": { - "goal_text": - "factory-alias->gref (indt «IsSelfA.axioms_») X181^2", + "goal_text": "factory-alias->gref (indt «IsSelfA.axioms_») X181^2", "goal_id": 1610 }, "cut_branch": { - "rule_text": - "(factory-alias->gref (indt «A.axioms_») (indt «A.axioms_»)) :- .", + "rule_text": "(factory-alias->gref (indt «A.axioms_») (indt «A.axioms_»)) :- .", "rule_loc": [ "File", { @@ -163494,13 +158326,11 @@ }, { "cut_branch_for_goal": { - "goal_text": - "factory-alias->gref (indt «IsSelfA.axioms_») X181^2", + "goal_text": "factory-alias->gref (indt «IsSelfA.axioms_») X181^2", "goal_id": 1610 }, "cut_branch": { - "rule_text": - "(factory-alias->gref (indt «B.axioms_») (indt «B.axioms_»)) :- .", + "rule_text": "(factory-alias->gref (indt «B.axioms_») (indt «B.axioms_»)) :- .", "rule_loc": [ "File", { @@ -163514,13 +158344,11 @@ }, { "cut_branch_for_goal": { - "goal_text": - "factory-alias->gref (indt «IsSelfA.axioms_») X181^2", + "goal_text": "factory-alias->gref (indt «IsSelfA.axioms_») X181^2", "goal_id": 1610 }, "cut_branch": { - "rule_text": - "(factory-alias->gref (indt «SelfA.axioms_») (indt «SelfA.axioms_»)) :- .", + "rule_text": "(factory-alias->gref (indt «SelfA.axioms_») (indt «SelfA.axioms_»)) :- .", "rule_loc": [ "File", { @@ -163544,8 +158372,7 @@ "Inference", { "current_goal_id": 1611, - "current_goal_text": - "factory-nparams (indt «IsSelfA.axioms_») X182^2", + "current_goal_text": "factory-nparams (indt «IsSelfA.axioms_») X182^2", "current_goal_predicate": "factory-nparams", "failed_attempts": [ { @@ -163575,8 +158402,7 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-nparams (indt «HasB.axioms_») 1) :- .", + "rule_text": "(factory-nparams (indt «HasB.axioms_») 1) :- .", "rule_loc": [ "File", { @@ -163622,8 +158448,7 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-nparams (indt «IsSelfA.axioms_») 0) :- .", + "rule_text": "(factory-nparams (indt «IsSelfA.axioms_») 0) :- .", "rule_loc": [ "File", { @@ -163644,8 +158469,7 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-nparams (indt «HasA.axioms_») 1) :- .", + "rule_text": "(factory-nparams (indt «HasA.axioms_») 1) :- .", "rule_loc": [ "File", { @@ -163674,8 +158498,7 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-nparams (indt «HasA.axioms_») 1) :- .", + "rule_text": "(factory-nparams (indt «HasA.axioms_») 1) :- .", "rule_loc": [ "File", { @@ -163694,13 +158517,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -163725,13 +158546,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -163765,8 +158584,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", + "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", "rule_loc": [ "File", { @@ -163842,13 +158660,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", + "rule_text": "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 108, "column": 0, "character": 3601 @@ -163863,8 +158679,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -163959,13 +158774,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -164057,13 +158870,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -164078,13 +158889,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -164099,13 +158908,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -164120,13 +158927,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -164198,13 +159003,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -164295,13 +159098,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -164335,13 +159136,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -164375,13 +159174,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -164396,13 +159193,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -164702,13 +159497,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -164727,8 +159520,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -164753,13 +159545,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -164774,8 +159564,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -164807,8 +159596,7 @@ "Inference", { "current_goal_id": 1612, - "current_goal_text": - "std.map\n [c0, app [global (const «Builders_18.HB_unnamed_factory_20»), c0, c1], \n app [global (const «Builders_18.HB_unnamed_factory_22»), c0, c1]] \n (copy-pack-holes c0) X183^2", + "current_goal_text": "std.map\n [c0, app [global (const «Builders_18.HB_unnamed_factory_20»), c0, c1], \n app [global (const «Builders_18.HB_unnamed_factory_22»), c0, c1]] \n (copy-pack-holes c0) X183^2", "current_goal_predicate": "std.map", "failed_attempts": [], "successful_attempts": [ @@ -164817,8 +159605,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -164846,8 +159633,7 @@ "goal_id": 1618 }, { - "goal_text": - "std.map\n [app [global (const «Builders_18.HB_unnamed_factory_20»), c0, c1], \n app [global (const «Builders_18.HB_unnamed_factory_22»), c0, c1]] \n (copy-pack-holes c0) X185^2", + "goal_text": "std.map\n [app [global (const «Builders_18.HB_unnamed_factory_20»), c0, c1], \n app [global (const «Builders_18.HB_unnamed_factory_22»), c0, c1]] \n (copy-pack-holes c0) X185^2", "goal_id": 1619 } ], @@ -164860,8 +159646,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -164880,13 +159665,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -164911,13 +159694,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -164951,8 +159732,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", + "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", "rule_loc": [ "File", { @@ -165028,13 +159808,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", + "rule_text": "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 108, "column": 0, "character": 3601 @@ -165049,8 +159827,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -165145,13 +159922,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -165243,13 +160018,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -165264,13 +160037,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -165285,13 +160056,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -165306,13 +160075,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -165384,13 +160151,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -165481,13 +160246,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -165521,13 +160284,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -165561,13 +160322,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -165582,13 +160341,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -165888,13 +160645,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -165913,8 +160668,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -165939,13 +160693,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -165960,8 +160712,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -166002,13 +160753,11 @@ "rule": [ "UserRule", { - "rule_text": - "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", + "rule_text": "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 318, "column": 0, "character": 12866 @@ -166032,8 +160781,7 @@ "goal_id": 1621 }, { - "goal_text": - "[pi c2 \\\n pi c3 \\\n pi c4 \\\n pi c5 \\\n pi c6 \\\n pi c7 \\\n copy (app [global c7 | c2]) (app [global c7 | c3]) :-\n , (pack? c7 _) (!) (std.rev c2 [c4, c0 | c5]) (copy c0 X188^2) \n (std.map c5 copy c6) \n (std.rev [global (const «elpi.hole»), X188^2 | c6] c3) | X187^2]\n => copy c0 X184^2", + "goal_text": "[pi c2 \\\n pi c3 \\\n pi c4 \\\n pi c5 \\\n pi c6 \\\n pi c7 \\\n copy (app [global c7 | c2]) (app [global c7 | c3]) :-\n , (pack? c7 _) (!) (std.rev c2 [c4, c0 | c5]) (copy c0 X188^2) \n (std.map c5 copy c6) \n (std.rev [global (const «elpi.hole»), X188^2 | c6] c3) | X187^2]\n => copy c0 X184^2", "goal_id": 1622 } ], @@ -166046,13 +160794,11 @@ "rule": [ "UserRule", { - "rule_text": - "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", + "rule_text": "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 318, "column": 0, "character": 12866 @@ -166067,8 +160813,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -166087,13 +160832,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -166118,13 +160861,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -166158,8 +160899,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", + "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", "rule_loc": [ "File", { @@ -166235,13 +160975,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", + "rule_text": "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 108, "column": 0, "character": 3601 @@ -166256,8 +160994,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -166352,13 +161089,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -166450,13 +161185,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -166471,13 +161204,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -166492,13 +161223,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -166513,13 +161242,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -166591,13 +161318,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -166688,13 +161413,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -166728,13 +161451,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -166768,13 +161489,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -166789,13 +161508,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -167095,13 +161812,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -167120,8 +161835,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -167146,13 +161860,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -167167,8 +161879,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -167209,13 +161920,11 @@ "rule": [ "UserRule", { - "rule_text": - "(findall-local-canonical A0) :- (std.findall (local-canonical A1) A2), \n (std.map A2 local-canonical-gref A0).", + "rule_text": "(findall-local-canonical A0) :- (std.findall (local-canonical A1) A2), \n (std.map A2 local-canonical-gref A0).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 200, "column": 0, "character": 7260 @@ -167244,13 +161953,11 @@ "rule": [ "UserRule", { - "rule_text": - "(findall-local-canonical A0) :- (std.findall (local-canonical A1) A2), \n (std.map A2 local-canonical-gref A0).", + "rule_text": "(findall-local-canonical A0) :- (std.findall (local-canonical A1) A2), \n (std.map A2 local-canonical-gref A0).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 200, "column": 0, "character": 7260 @@ -167265,13 +161972,11 @@ "rule": [ "UserRule", { - "rule_text": - "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", + "rule_text": "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 318, "column": 0, "character": 12866 @@ -167286,8 +161991,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -167306,13 +162010,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -167337,13 +162039,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -167377,8 +162077,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", + "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", "rule_loc": [ "File", { @@ -167454,13 +162153,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", + "rule_text": "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 108, "column": 0, "character": 3601 @@ -167475,8 +162172,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -167571,13 +162267,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -167669,13 +162363,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -167690,13 +162382,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -167711,13 +162401,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -167732,13 +162420,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -167810,13 +162496,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -167907,13 +162591,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -167947,13 +162629,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -167987,13 +162667,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -168008,13 +162686,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -168314,13 +162990,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -168339,8 +163013,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -168365,13 +163038,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -168386,8 +163057,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -168428,8 +163098,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.findall A0 A1) :- (findall_solutions A0 A1).", + "rule_text": "(std.findall A0 A1) :- (findall_solutions A0 A1).", "rule_loc": [ "File", { @@ -168448,8 +163117,7 @@ }, "siblings": [ { - "goal_text": - "findall_solutions (local-canonical X189^2) X190^2", + "goal_text": "findall_solutions (local-canonical X189^2) X190^2", "goal_id": 1625 } ], @@ -168462,8 +163130,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.findall A0 A1) :- (findall_solutions A0 A1).", + "rule_text": "(std.findall A0 A1) :- (findall_solutions A0 A1).", "rule_loc": [ "File", { @@ -168482,13 +163149,11 @@ "rule": [ "UserRule", { - "rule_text": - "(findall-local-canonical A0) :- (std.findall (local-canonical A1) A2), \n (std.map A2 local-canonical-gref A0).", + "rule_text": "(findall-local-canonical A0) :- (std.findall (local-canonical A1) A2), \n (std.map A2 local-canonical-gref A0).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 200, "column": 0, "character": 7260 @@ -168503,13 +163168,11 @@ "rule": [ "UserRule", { - "rule_text": - "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", + "rule_text": "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 318, "column": 0, "character": 12866 @@ -168524,8 +163187,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -168544,13 +163206,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -168575,13 +163235,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -168615,8 +163273,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", + "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", "rule_loc": [ "File", { @@ -168692,13 +163349,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", + "rule_text": "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 108, "column": 0, "character": 3601 @@ -168713,8 +163368,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -168809,13 +163463,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -168907,13 +163559,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -168928,13 +163578,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -168949,13 +163597,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -168970,13 +163616,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -169048,13 +163692,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -169145,13 +163787,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -169185,13 +163825,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -169225,13 +163863,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -169246,13 +163882,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -169552,13 +164186,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -169577,8 +164209,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -169603,13 +164234,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -169624,8 +164253,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -169657,8 +164285,7 @@ "Findall", { "findall_goal_id": 1625, - "findall_goal_text": - "findall_solutions (local-canonical X189^2) X190^2", + "findall_goal_text": "findall_solutions (local-canonical X189^2) X190^2", "findall_cards": [ { "step_id": 0, @@ -169698,8 +164325,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.findall A0 A1) :- (findall_solutions A0 A1).", + "rule_text": "(std.findall A0 A1) :- (findall_solutions A0 A1).", "rule_loc": [ "File", { @@ -169718,13 +164344,11 @@ "rule": [ "UserRule", { - "rule_text": - "(findall-local-canonical A0) :- (std.findall (local-canonical A1) A2), \n (std.map A2 local-canonical-gref A0).", + "rule_text": "(findall-local-canonical A0) :- (std.findall (local-canonical A1) A2), \n (std.map A2 local-canonical-gref A0).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 200, "column": 0, "character": 7260 @@ -169739,13 +164363,11 @@ "rule": [ "UserRule", { - "rule_text": - "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", + "rule_text": "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 318, "column": 0, "character": 12866 @@ -169760,8 +164382,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -169780,13 +164401,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -169811,13 +164430,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -169851,8 +164468,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", + "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", "rule_loc": [ "File", { @@ -169928,13 +164544,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", + "rule_text": "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 108, "column": 0, "character": 3601 @@ -169949,8 +164563,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -170045,13 +164658,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -170143,13 +164754,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -170164,13 +164773,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -170185,13 +164792,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -170206,13 +164811,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -170284,13 +164887,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -170381,13 +164982,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -170421,13 +165020,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -170461,13 +165058,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -170482,13 +165077,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -170788,13 +165381,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -170813,8 +165404,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -170839,13 +165429,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -170860,8 +165448,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -170945,13 +165532,11 @@ "rule": [ "UserRule", { - "rule_text": - "(findall-local-canonical A0) :- (std.findall (local-canonical A1) A2), \n (std.map A2 local-canonical-gref A0).", + "rule_text": "(findall-local-canonical A0) :- (std.findall (local-canonical A1) A2), \n (std.map A2 local-canonical-gref A0).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 200, "column": 0, "character": 7260 @@ -170966,13 +165551,11 @@ "rule": [ "UserRule", { - "rule_text": - "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", + "rule_text": "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 318, "column": 0, "character": 12866 @@ -170987,8 +165570,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -171007,13 +165589,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -171038,13 +165618,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -171078,8 +165656,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", + "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", "rule_loc": [ "File", { @@ -171155,13 +165732,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", + "rule_text": "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 108, "column": 0, "character": 3601 @@ -171176,8 +165751,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -171272,13 +165846,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -171370,13 +165942,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -171391,13 +165961,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -171412,13 +165980,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -171433,13 +165999,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -171511,13 +166075,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -171608,13 +166170,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -171648,13 +166208,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -171688,13 +166246,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -171709,13 +166265,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -172015,13 +166569,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -172040,8 +166592,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -172066,13 +166617,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -172087,8 +166636,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -172133,8 +166681,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/stdpp.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/stdpp.elpi", "line": 196, "column": 0, "character": 7411 @@ -172158,8 +166705,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/stdpp.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/stdpp.elpi", "line": 196, "column": 0, "character": 7411 @@ -172174,13 +166720,11 @@ "rule": [ "UserRule", { - "rule_text": - "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", + "rule_text": "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 318, "column": 0, "character": 12866 @@ -172195,8 +166739,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -172215,13 +166758,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -172246,13 +166787,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -172286,8 +166825,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", + "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", "rule_loc": [ "File", { @@ -172363,13 +166901,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", + "rule_text": "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 108, "column": 0, "character": 3601 @@ -172384,8 +166920,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -172480,13 +167015,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -172578,13 +167111,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -172599,13 +167130,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -172620,13 +167149,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -172641,13 +167168,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -172719,13 +167244,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -172816,13 +167339,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -172856,13 +167377,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -172896,13 +167415,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -172917,13 +167434,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -173223,13 +167738,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -173248,8 +167761,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -173274,13 +167786,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -173295,8 +167805,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -173328,8 +167837,7 @@ "Inference", { "current_goal_id": 1622, - "current_goal_text": - "[pi c2 \\\n pi c3 \\\n pi c4 \\\n pi c5 \\\n pi c6 \\\n pi c7 \\\n copy (app [global c7 | c2]) (app [global c7 | c3]) :-\n , (pack? c7 _) (!) (std.rev c2 [c4, c0 | c5]) (copy c0 X188^2) \n (std.map c5 copy c6) \n (std.rev [global (const «elpi.hole»), X188^2 | c6] c3)] =>\n copy c0 X184^2", + "current_goal_text": "[pi c2 \\\n pi c3 \\\n pi c4 \\\n pi c5 \\\n pi c6 \\\n pi c7 \\\n copy (app [global c7 | c2]) (app [global c7 | c3]) :-\n , (pack? c7 _) (!) (std.rev c2 [c4, c0 | c5]) (copy c0 X188^2) \n (std.map c5 copy c6) \n (std.rev [global (const «elpi.hole»), X188^2 | c6] c3)] =>\n copy c0 X184^2", "current_goal_predicate": "=>", "failed_attempts": [], "successful_attempts": [ @@ -173355,13 +167863,11 @@ "rule": [ "UserRule", { - "rule_text": - "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", + "rule_text": "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 318, "column": 0, "character": 12866 @@ -173376,8 +167882,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -173396,13 +167901,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -173427,13 +167930,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -173467,8 +167968,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", + "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", "rule_loc": [ "File", { @@ -173544,13 +168044,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", + "rule_text": "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 108, "column": 0, "character": 3601 @@ -173565,8 +168063,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -173661,13 +168158,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -173759,13 +168254,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -173780,13 +168273,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -173801,13 +168292,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -173822,13 +168311,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -173900,13 +168387,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -173997,13 +168482,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -174037,13 +168520,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -174077,13 +168558,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -174098,13 +168577,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -174404,13 +168881,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -174429,8 +168904,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -174455,13 +168929,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -174476,8 +168948,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -174518,8 +168989,7 @@ "rule": [ "UserRule", { - "rule_text": - "(copy A0 A1) :- (name A0), (!), (A0 = A1), (!).", + "rule_text": "(copy A0 A1) :- (name A0), (!), (A0 = A1), (!).", "rule_loc": [ "File", { @@ -174532,8 +169002,7 @@ } ], "events": [ - [ "Assign", "A0 := c0" ], - [ "Assign", "A1 := X184^2" ] + [ "Assign", "A0 := c0" ], [ "Assign", "A1 := X184^2" ] ] }, "siblings": [ @@ -174551,8 +169020,7 @@ "rule": [ "UserRule", { - "rule_text": - "(copy A0 A1) :- (name A0), (!), (A0 = A1), (!).", + "rule_text": "(copy A0 A1) :- (name A0), (!), (A0 = A1), (!).", "rule_loc": [ "File", { @@ -174576,13 +169044,11 @@ "rule": [ "UserRule", { - "rule_text": - "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", + "rule_text": "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 318, "column": 0, "character": 12866 @@ -174597,8 +169063,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -174617,13 +169082,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -174648,13 +169111,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -174688,8 +169149,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", + "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", "rule_loc": [ "File", { @@ -174765,13 +169225,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", + "rule_text": "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 108, "column": 0, "character": 3601 @@ -174786,8 +169244,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -174882,13 +169339,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -174980,13 +169435,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -175001,13 +169454,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -175022,13 +169473,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -175043,13 +169492,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -175121,13 +169568,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -175218,13 +169663,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -175258,13 +169701,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -175298,13 +169739,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -175319,13 +169758,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -175625,13 +170062,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -175650,8 +170085,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -175676,13 +170110,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -175697,8 +170129,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -175754,8 +170185,7 @@ "rule": [ "UserRule", { - "rule_text": - "(copy A0 A1) :- (name A0), (!), (A0 = A1), (!).", + "rule_text": "(copy A0 A1) :- (name A0), (!), (A0 = A1), (!).", "rule_loc": [ "File", { @@ -175779,13 +170209,11 @@ "rule": [ "UserRule", { - "rule_text": - "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", + "rule_text": "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 318, "column": 0, "character": 12866 @@ -175800,8 +170228,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -175820,13 +170247,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -175851,13 +170276,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -175891,8 +170314,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", + "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", "rule_loc": [ "File", { @@ -175968,13 +170390,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", + "rule_text": "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 108, "column": 0, "character": 3601 @@ -175989,8 +170409,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -176085,13 +170504,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -176183,13 +170600,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -176204,13 +170619,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -176225,13 +170638,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -176246,13 +170657,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -176324,13 +170733,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -176421,13 +170828,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -176461,13 +170866,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -176501,13 +170904,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -176522,13 +170923,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -176828,13 +171227,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -176853,8 +171250,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -176879,13 +171275,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -176900,8 +171294,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -176962,8 +171355,7 @@ "rule": [ "UserRule", { - "rule_text": - "(copy A0 A1) :- (name A0), (!), (A0 = A1), (!).", + "rule_text": "(copy A0 A1) :- (name A0), (!), (A0 = A1), (!).", "rule_loc": [ "File", { @@ -176987,13 +171379,11 @@ "rule": [ "UserRule", { - "rule_text": - "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", + "rule_text": "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 318, "column": 0, "character": 12866 @@ -177008,8 +171398,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -177028,13 +171417,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -177059,13 +171446,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -177099,8 +171484,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", + "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", "rule_loc": [ "File", { @@ -177176,13 +171560,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", + "rule_text": "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 108, "column": 0, "character": 3601 @@ -177197,8 +171579,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -177293,13 +171674,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -177391,13 +171770,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -177412,13 +171789,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -177433,13 +171808,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -177454,13 +171827,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -177532,13 +171903,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -177629,13 +171998,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -177669,13 +172036,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -177709,13 +172074,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -177730,13 +172093,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -178036,13 +172397,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -178061,8 +172420,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -178087,13 +172445,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -178108,8 +172464,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -178171,8 +172526,7 @@ "rule": [ "UserRule", { - "rule_text": - "(copy A0 A1) :- (name A0), (!), (A0 = A1), (!).", + "rule_text": "(copy A0 A1) :- (name A0), (!), (A0 = A1), (!).", "rule_loc": [ "File", { @@ -178196,13 +172550,11 @@ "rule": [ "UserRule", { - "rule_text": - "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", + "rule_text": "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 318, "column": 0, "character": 12866 @@ -178217,8 +172569,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -178237,13 +172588,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -178268,13 +172617,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -178308,8 +172655,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", + "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", "rule_loc": [ "File", { @@ -178385,13 +172731,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", + "rule_text": "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 108, "column": 0, "character": 3601 @@ -178406,8 +172750,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -178502,13 +172845,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -178600,13 +172941,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -178621,13 +172960,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -178642,13 +172979,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -178663,13 +172998,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -178741,13 +173074,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -178838,13 +173169,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -178878,13 +173207,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -178918,13 +173245,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -178939,13 +173264,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -179245,13 +173568,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -179270,8 +173591,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -179296,13 +173616,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -179317,8 +173635,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -179356,8 +173673,7 @@ "Inference", { "current_goal_id": 1619, - "current_goal_text": - "std.map\n [app [global (const «Builders_18.HB_unnamed_factory_20»), c0, c1], \n app [global (const «Builders_18.HB_unnamed_factory_22»), c0, c1]] \n (copy-pack-holes c0) X185^2", + "current_goal_text": "std.map\n [app [global (const «Builders_18.HB_unnamed_factory_20»), c0, c1], \n app [global (const «Builders_18.HB_unnamed_factory_22»), c0, c1]] \n (copy-pack-holes c0) X185^2", "current_goal_predicate": "std.map", "failed_attempts": [], "successful_attempts": [ @@ -179366,8 +173682,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -179394,13 +173709,11 @@ }, "siblings": [ { - "goal_text": - "copy-pack-holes c0 \n (app [global (const «Builders_18.HB_unnamed_factory_20»), c0, c1]) X191^2", + "goal_text": "copy-pack-holes c0 \n (app [global (const «Builders_18.HB_unnamed_factory_20»), c0, c1]) X191^2", "goal_id": 1634 }, { - "goal_text": - "std.map [app [global (const «Builders_18.HB_unnamed_factory_22»), c0, c1]] \n (copy-pack-holes c0) X192^2", + "goal_text": "std.map [app [global (const «Builders_18.HB_unnamed_factory_22»), c0, c1]] \n (copy-pack-holes c0) X192^2", "goal_id": 1635 } ], @@ -179413,8 +173726,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -179433,8 +173745,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -179453,13 +173764,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -179484,13 +173793,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -179524,8 +173831,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", + "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", "rule_loc": [ "File", { @@ -179601,13 +173907,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", + "rule_text": "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 108, "column": 0, "character": 3601 @@ -179622,8 +173926,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -179718,13 +174021,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -179816,13 +174117,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -179837,13 +174136,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -179858,13 +174155,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -179879,13 +174174,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -179957,13 +174250,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -180054,13 +174345,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -180094,13 +174383,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -180134,13 +174421,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -180155,13 +174440,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -180461,13 +174744,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -180486,8 +174767,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -180512,13 +174792,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -180533,8 +174811,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -180566,8 +174843,7 @@ "Inference", { "current_goal_id": 1634, - "current_goal_text": - "copy-pack-holes c0 \n (app [global (const «Builders_18.HB_unnamed_factory_20»), c0, c1]) X191^2", + "current_goal_text": "copy-pack-holes c0 \n (app [global (const «Builders_18.HB_unnamed_factory_20»), c0, c1]) X191^2", "current_goal_predicate": "copy-pack-holes", "failed_attempts": [], "successful_attempts": [ @@ -180576,13 +174852,11 @@ "rule": [ "UserRule", { - "rule_text": - "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", + "rule_text": "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 318, "column": 0, "character": 12866 @@ -180609,8 +174883,7 @@ "goal_id": 1637 }, { - "goal_text": - "[pi c2 \\\n pi c3 \\\n pi c4 \\\n pi c5 \\\n pi c6 \\\n pi c7 \\\n copy (app [global c7 | c2]) (app [global c7 | c3]) :-\n , (pack? c7 _) (!) (std.rev c2 [c4, c0 | c5]) (copy c0 X195^2) \n (std.map c5 copy c6) \n (std.rev [global (const «elpi.hole»), X195^2 | c6] c3) | X194^2]\n =>\n copy (app [global (const «Builders_18.HB_unnamed_factory_20»), c0, c1]) \n X191^2", + "goal_text": "[pi c2 \\\n pi c3 \\\n pi c4 \\\n pi c5 \\\n pi c6 \\\n pi c7 \\\n copy (app [global c7 | c2]) (app [global c7 | c3]) :-\n , (pack? c7 _) (!) (std.rev c2 [c4, c0 | c5]) (copy c0 X195^2) \n (std.map c5 copy c6) \n (std.rev [global (const «elpi.hole»), X195^2 | c6] c3) | X194^2]\n =>\n copy (app [global (const «Builders_18.HB_unnamed_factory_20»), c0, c1]) \n X191^2", "goal_id": 1638 } ], @@ -180623,13 +174896,11 @@ "rule": [ "UserRule", { - "rule_text": - "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", + "rule_text": "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 318, "column": 0, "character": 12866 @@ -180644,8 +174915,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -180664,8 +174934,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -180684,13 +174953,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -180715,13 +174982,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -180755,8 +175020,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", + "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", "rule_loc": [ "File", { @@ -180832,13 +175096,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", + "rule_text": "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 108, "column": 0, "character": 3601 @@ -180853,8 +175115,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -180949,13 +175210,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -181047,13 +175306,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -181068,13 +175325,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -181089,13 +175344,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -181110,13 +175363,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -181188,13 +175439,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -181285,13 +175534,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -181325,13 +175572,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -181365,13 +175610,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -181386,13 +175629,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -181692,13 +175933,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -181717,8 +175956,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -181743,13 +175981,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -181764,8 +176000,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -181806,13 +176041,11 @@ "rule": [ "UserRule", { - "rule_text": - "(findall-local-canonical A0) :- (std.findall (local-canonical A1) A2), \n (std.map A2 local-canonical-gref A0).", + "rule_text": "(findall-local-canonical A0) :- (std.findall (local-canonical A1) A2), \n (std.map A2 local-canonical-gref A0).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 200, "column": 0, "character": 7260 @@ -181841,13 +176074,11 @@ "rule": [ "UserRule", { - "rule_text": - "(findall-local-canonical A0) :- (std.findall (local-canonical A1) A2), \n (std.map A2 local-canonical-gref A0).", + "rule_text": "(findall-local-canonical A0) :- (std.findall (local-canonical A1) A2), \n (std.map A2 local-canonical-gref A0).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 200, "column": 0, "character": 7260 @@ -181862,13 +176093,11 @@ "rule": [ "UserRule", { - "rule_text": - "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", + "rule_text": "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 318, "column": 0, "character": 12866 @@ -181883,8 +176112,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -181903,8 +176131,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -181923,13 +176150,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -181954,13 +176179,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -181994,8 +176217,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", + "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", "rule_loc": [ "File", { @@ -182071,13 +176293,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", + "rule_text": "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 108, "column": 0, "character": 3601 @@ -182092,8 +176312,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -182188,13 +176407,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -182286,13 +176503,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -182307,13 +176522,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -182328,13 +176541,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -182349,13 +176560,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -182427,13 +176636,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -182524,13 +176731,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -182564,13 +176769,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -182604,13 +176807,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -182625,13 +176826,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -182931,13 +177130,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -182956,8 +177153,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -182982,13 +177178,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -183003,8 +177197,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -183045,8 +177238,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.findall A0 A1) :- (findall_solutions A0 A1).", + "rule_text": "(std.findall A0 A1) :- (findall_solutions A0 A1).", "rule_loc": [ "File", { @@ -183065,8 +177257,7 @@ }, "siblings": [ { - "goal_text": - "findall_solutions (local-canonical X196^2) X197^2", + "goal_text": "findall_solutions (local-canonical X196^2) X197^2", "goal_id": 1641 } ], @@ -183079,8 +177270,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.findall A0 A1) :- (findall_solutions A0 A1).", + "rule_text": "(std.findall A0 A1) :- (findall_solutions A0 A1).", "rule_loc": [ "File", { @@ -183099,13 +177289,11 @@ "rule": [ "UserRule", { - "rule_text": - "(findall-local-canonical A0) :- (std.findall (local-canonical A1) A2), \n (std.map A2 local-canonical-gref A0).", + "rule_text": "(findall-local-canonical A0) :- (std.findall (local-canonical A1) A2), \n (std.map A2 local-canonical-gref A0).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 200, "column": 0, "character": 7260 @@ -183120,13 +177308,11 @@ "rule": [ "UserRule", { - "rule_text": - "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", + "rule_text": "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 318, "column": 0, "character": 12866 @@ -183141,8 +177327,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -183161,8 +177346,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -183181,13 +177365,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -183212,13 +177394,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -183252,8 +177432,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", + "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", "rule_loc": [ "File", { @@ -183329,13 +177508,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", + "rule_text": "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 108, "column": 0, "character": 3601 @@ -183350,8 +177527,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -183446,13 +177622,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -183544,13 +177718,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -183565,13 +177737,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -183586,13 +177756,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -183607,13 +177775,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -183685,13 +177851,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -183782,13 +177946,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -183822,13 +177984,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -183862,13 +178022,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -183883,13 +178041,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -184189,13 +178345,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -184214,8 +178368,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -184240,13 +178393,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -184261,8 +178412,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -184294,8 +178444,7 @@ "Findall", { "findall_goal_id": 1641, - "findall_goal_text": - "findall_solutions (local-canonical X196^2) X197^2", + "findall_goal_text": "findall_solutions (local-canonical X196^2) X197^2", "findall_cards": [ { "step_id": 0, @@ -184335,8 +178484,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.findall A0 A1) :- (findall_solutions A0 A1).", + "rule_text": "(std.findall A0 A1) :- (findall_solutions A0 A1).", "rule_loc": [ "File", { @@ -184355,13 +178503,11 @@ "rule": [ "UserRule", { - "rule_text": - "(findall-local-canonical A0) :- (std.findall (local-canonical A1) A2), \n (std.map A2 local-canonical-gref A0).", + "rule_text": "(findall-local-canonical A0) :- (std.findall (local-canonical A1) A2), \n (std.map A2 local-canonical-gref A0).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 200, "column": 0, "character": 7260 @@ -184376,13 +178522,11 @@ "rule": [ "UserRule", { - "rule_text": - "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", + "rule_text": "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 318, "column": 0, "character": 12866 @@ -184397,8 +178541,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -184417,8 +178560,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -184437,13 +178579,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -184468,13 +178608,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -184508,8 +178646,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", + "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", "rule_loc": [ "File", { @@ -184585,13 +178722,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", + "rule_text": "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 108, "column": 0, "character": 3601 @@ -184606,8 +178741,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -184702,13 +178836,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -184800,13 +178932,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -184821,13 +178951,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -184842,13 +178970,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -184863,13 +178989,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -184941,13 +179065,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -185038,13 +179160,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -185078,13 +179198,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -185118,13 +179236,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -185139,13 +179255,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -185445,13 +179559,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -185470,8 +179582,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -185496,13 +179607,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -185517,8 +179626,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -185602,13 +179710,11 @@ "rule": [ "UserRule", { - "rule_text": - "(findall-local-canonical A0) :- (std.findall (local-canonical A1) A2), \n (std.map A2 local-canonical-gref A0).", + "rule_text": "(findall-local-canonical A0) :- (std.findall (local-canonical A1) A2), \n (std.map A2 local-canonical-gref A0).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 200, "column": 0, "character": 7260 @@ -185623,13 +179729,11 @@ "rule": [ "UserRule", { - "rule_text": - "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", + "rule_text": "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 318, "column": 0, "character": 12866 @@ -185644,8 +179748,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -185664,8 +179767,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -185684,13 +179786,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -185715,13 +179815,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -185755,8 +179853,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", + "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", "rule_loc": [ "File", { @@ -185832,13 +179929,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", + "rule_text": "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 108, "column": 0, "character": 3601 @@ -185853,8 +179948,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -185949,13 +180043,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -186047,13 +180139,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -186068,13 +180158,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -186089,13 +180177,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -186110,13 +180196,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -186188,13 +180272,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -186285,13 +180367,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -186325,13 +180405,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -186365,13 +180443,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -186386,13 +180462,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -186692,13 +180766,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -186717,8 +180789,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -186743,13 +180814,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -186764,8 +180833,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -186810,8 +180878,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/stdpp.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/stdpp.elpi", "line": 196, "column": 0, "character": 7411 @@ -186835,8 +180902,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/stdpp.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/stdpp.elpi", "line": 196, "column": 0, "character": 7411 @@ -186851,13 +180917,11 @@ "rule": [ "UserRule", { - "rule_text": - "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", + "rule_text": "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 318, "column": 0, "character": 12866 @@ -186872,8 +180936,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -186892,8 +180955,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -186912,13 +180974,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -186943,13 +181003,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -186983,8 +181041,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", + "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", "rule_loc": [ "File", { @@ -187060,13 +181117,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", + "rule_text": "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 108, "column": 0, "character": 3601 @@ -187081,8 +181136,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -187177,13 +181231,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -187275,13 +181327,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -187296,13 +181346,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -187317,13 +181365,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -187338,13 +181384,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -187416,13 +181460,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -187513,13 +181555,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -187553,13 +181593,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -187593,13 +181631,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -187614,13 +181650,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -187920,13 +181954,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -187945,8 +181977,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -187971,13 +182002,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -187992,8 +182021,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -188025,8 +182053,7 @@ "Inference", { "current_goal_id": 1638, - "current_goal_text": - "[pi c2 \\\n pi c3 \\\n pi c4 \\\n pi c5 \\\n pi c6 \\\n pi c7 \\\n copy (app [global c7 | c2]) (app [global c7 | c3]) :-\n , (pack? c7 _) (!) (std.rev c2 [c4, c0 | c5]) (copy c0 X195^2) \n (std.map c5 copy c6) \n (std.rev [global (const «elpi.hole»), X195^2 | c6] c3)] =>\n copy (app [global (const «Builders_18.HB_unnamed_factory_20»), c0, c1]) \n X191^2", + "current_goal_text": "[pi c2 \\\n pi c3 \\\n pi c4 \\\n pi c5 \\\n pi c6 \\\n pi c7 \\\n copy (app [global c7 | c2]) (app [global c7 | c3]) :-\n , (pack? c7 _) (!) (std.rev c2 [c4, c0 | c5]) (copy c0 X195^2) \n (std.map c5 copy c6) \n (std.rev [global (const «elpi.hole»), X195^2 | c6] c3)] =>\n copy (app [global (const «Builders_18.HB_unnamed_factory_20»), c0, c1]) \n X191^2", "current_goal_predicate": "=>", "failed_attempts": [], "successful_attempts": [ @@ -188037,8 +182064,7 @@ }, "siblings": [ { - "goal_text": - "copy (app [global (const «Builders_18.HB_unnamed_factory_20»), c0, c1]) \n X191^2", + "goal_text": "copy (app [global (const «Builders_18.HB_unnamed_factory_20»), c0, c1]) \n X191^2", "goal_id": 1644 } ], @@ -188056,13 +182082,11 @@ "rule": [ "UserRule", { - "rule_text": - "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", + "rule_text": "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 318, "column": 0, "character": 12866 @@ -188077,8 +182101,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -188097,8 +182120,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -188117,13 +182139,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -188148,13 +182168,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -188188,8 +182206,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", + "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", "rule_loc": [ "File", { @@ -188265,13 +182282,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", + "rule_text": "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 108, "column": 0, "character": 3601 @@ -188286,8 +182301,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -188382,13 +182396,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -188480,13 +182492,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -188501,13 +182511,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -188522,13 +182530,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -188543,13 +182549,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -188621,13 +182625,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -188718,13 +182720,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -188758,13 +182758,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -188798,13 +182796,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -188819,13 +182815,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -189125,13 +183119,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -189150,8 +183142,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -189176,13 +183167,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -189197,8 +183186,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -189230,8 +183218,7 @@ "Inference", { "current_goal_id": 1644, - "current_goal_text": - "copy (app [global (const «Builders_18.HB_unnamed_factory_20»), c0, c1]) \n X191^2", + "current_goal_text": "copy (app [global (const «Builders_18.HB_unnamed_factory_20»), c0, c1]) \n X191^2", "current_goal_predicate": "copy", "failed_attempts": [], "successful_attempts": [ @@ -189240,8 +183227,7 @@ "rule": [ "UserRule", { - "rule_text": - "(copy (app [global A5 | A0]) (app [global A5 | A1])) :- (pack? A5 _), (!), \n (std.rev A0 [A2, c0 | A3]), (copy c0 X195^2), (std.map A3 copy A4), \n (std.rev [global (const «elpi.hole»), X195^2 | A4] A1).", + "rule_text": "(copy (app [global A5 | A0]) (app [global A5 | A1])) :- (pack? A5 _), (!), \n (std.rev A0 [A2, c0 | A3]), (copy c0 X195^2), (std.map A3 copy A4), \n (std.rev [global (const «elpi.hole»), X195^2 | A4] A1).", "rule_loc": [ "Context", 451 ] } ], @@ -189259,8 +183245,7 @@ }, "siblings": [ { - "goal_text": - "pack? (const «Builders_18.HB_unnamed_factory_20») _", + "goal_text": "pack? (const «Builders_18.HB_unnamed_factory_20») _", "goal_id": 1645 }, { "goal_text": "!", "goal_id": 1646 }, @@ -189271,8 +183256,7 @@ { "goal_text": "copy c0 X195^2", "goal_id": 1648 }, { "goal_text": "std.map X200^2 copy X201^2", "goal_id": 1649 }, { - "goal_text": - "std.rev [global (const «elpi.hole»), X195^2 | X201^2] X198^2", + "goal_text": "std.rev [global (const «elpi.hole»), X195^2 | X201^2] X198^2", "goal_id": 1650 } ], @@ -189285,8 +183269,7 @@ "rule": [ "UserRule", { - "rule_text": - "(copy (app [global A5 | A0]) (app [global A5 | A1])) :- (pack? A5 _), (!), \n (std.rev A0 [A2, c0 | A3]), (copy c0 X195^2), (std.map A3 copy A4), \n (std.rev [global (const «elpi.hole»), X195^2 | A4] A1).", + "rule_text": "(copy (app [global A5 | A0]) (app [global A5 | A1])) :- (pack? A5 _), (!), \n (std.rev A0 [A2, c0 | A3]), (copy c0 X195^2), (std.map A3 copy A4), \n (std.rev [global (const «elpi.hole»), X195^2 | A4] A1).", "rule_loc": [ "Context", 451 ] } ], @@ -189302,13 +183285,11 @@ "rule": [ "UserRule", { - "rule_text": - "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", + "rule_text": "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 318, "column": 0, "character": 12866 @@ -189323,8 +183304,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -189343,8 +183323,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -189363,13 +183342,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -189394,13 +183371,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -189434,8 +183409,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", + "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", "rule_loc": [ "File", { @@ -189511,13 +183485,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", + "rule_text": "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 108, "column": 0, "character": 3601 @@ -189532,8 +183504,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -189628,13 +183599,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -189726,13 +183695,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -189747,13 +183714,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -189768,13 +183733,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -189789,13 +183752,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -189867,13 +183828,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -189964,13 +183923,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -190004,13 +183961,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -190044,13 +183999,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -190065,13 +184018,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -190371,13 +184322,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -190396,8 +184345,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -190422,13 +184370,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -190443,8 +184389,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -190476,8 +184421,7 @@ "Inference", { "current_goal_id": 1645, - "current_goal_text": - "pack? (const «Builders_18.HB_unnamed_factory_20») _", + "current_goal_text": "pack? (const «Builders_18.HB_unnamed_factory_20») _", "current_goal_predicate": "pack?", "failed_attempts": [], "successful_attempts": [], @@ -190487,8 +184431,7 @@ "rule": [ "UserRule", { - "rule_text": - "(copy (app [global A5 | A0]) (app [global A5 | A1])) :- (pack? A5 _), (!), \n (std.rev A0 [A2, c0 | A3]), (copy c0 X195^2), (std.map A3 copy A4), \n (std.rev [global (const «elpi.hole»), X195^2 | A4] A1).", + "rule_text": "(copy (app [global A5 | A0]) (app [global A5 | A1])) :- (pack? A5 _), (!), \n (std.rev A0 [A2, c0 | A3]), (copy c0 X195^2), (std.map A3 copy A4), \n (std.rev [global (const «elpi.hole»), X195^2 | A4] A1).", "rule_loc": [ "Context", 451 ] } ], @@ -190504,13 +184447,11 @@ "rule": [ "UserRule", { - "rule_text": - "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", + "rule_text": "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 318, "column": 0, "character": 12866 @@ -190525,8 +184466,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -190545,8 +184485,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -190565,13 +184504,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -190596,13 +184533,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -190636,8 +184571,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", + "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", "rule_loc": [ "File", { @@ -190713,13 +184647,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", + "rule_text": "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 108, "column": 0, "character": 3601 @@ -190734,8 +184666,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -190830,13 +184761,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -190928,13 +184857,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -190949,13 +184876,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -190970,13 +184895,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -190991,13 +184914,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -191069,13 +184990,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -191166,13 +185085,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -191206,13 +185123,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -191246,13 +185161,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -191267,13 +185180,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -191573,13 +185484,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -191598,8 +185507,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -191624,13 +185532,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -191645,8 +185551,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -191678,8 +185583,7 @@ "Inference", { "current_goal_id": 1644, - "current_goal_text": - "copy (app [global (const «Builders_18.HB_unnamed_factory_20»), c0, c1]) \n X191^2", + "current_goal_text": "copy (app [global (const «Builders_18.HB_unnamed_factory_20»), c0, c1]) \n X191^2", "current_goal_predicate": "copy", "failed_attempts": [], "successful_attempts": [ @@ -191688,8 +185592,7 @@ "rule": [ "UserRule", { - "rule_text": - "(copy A0 A1) :- (name A0), (!), (A0 = A1), (!).", + "rule_text": "(copy A0 A1) :- (name A0), (!), (A0 = A1), (!).", "rule_loc": [ "File", { @@ -191711,14 +185614,12 @@ }, "siblings": [ { - "goal_text": - "name (app [global (const «Builders_18.HB_unnamed_factory_20»), c0, c1])", + "goal_text": "name (app [global (const «Builders_18.HB_unnamed_factory_20»), c0, c1])", "goal_id": 1651 }, { "goal_text": "!", "goal_id": 1652 }, { - "goal_text": - "app [global (const «Builders_18.HB_unnamed_factory_20»), c0, c1] = X191^2", + "goal_text": "app [global (const «Builders_18.HB_unnamed_factory_20»), c0, c1] = X191^2", "goal_id": 1653 }, { "goal_text": "!", "goal_id": 1654 } @@ -191732,8 +185633,7 @@ "rule": [ "UserRule", { - "rule_text": - "(copy A0 A1) :- (name A0), (!), (A0 = A1), (!).", + "rule_text": "(copy A0 A1) :- (name A0), (!), (A0 = A1), (!).", "rule_loc": [ "File", { @@ -191757,13 +185657,11 @@ "rule": [ "UserRule", { - "rule_text": - "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", + "rule_text": "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 318, "column": 0, "character": 12866 @@ -191778,8 +185676,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -191798,8 +185695,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -191818,13 +185714,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -191849,13 +185743,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -191889,8 +185781,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", + "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", "rule_loc": [ "File", { @@ -191966,13 +185857,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", + "rule_text": "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 108, "column": 0, "character": 3601 @@ -191987,8 +185876,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -192083,13 +185971,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -192181,13 +186067,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -192202,13 +186086,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -192223,13 +186105,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -192244,13 +186124,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -192322,13 +186200,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -192419,13 +186295,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -192459,13 +186333,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -192499,13 +186371,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -192520,13 +186390,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -192826,13 +186694,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -192851,8 +186717,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -192877,13 +186742,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -192898,8 +186761,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -192931,8 +186793,7 @@ "Inference", { "current_goal_id": 1651, - "current_goal_text": - "name (app [global (const «Builders_18.HB_unnamed_factory_20»), c0, c1])", + "current_goal_text": "name (app [global (const «Builders_18.HB_unnamed_factory_20»), c0, c1])", "current_goal_predicate": "name", "failed_attempts": [ { "rule": [ "BuiltinRule", [ "FFI", "name" ] ], "events": [] } @@ -192949,8 +186810,7 @@ "rule": [ "UserRule", { - "rule_text": - "(copy A0 A1) :- (name A0), (!), (A0 = A1), (!).", + "rule_text": "(copy A0 A1) :- (name A0), (!), (A0 = A1), (!).", "rule_loc": [ "File", { @@ -192974,13 +186834,11 @@ "rule": [ "UserRule", { - "rule_text": - "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", + "rule_text": "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 318, "column": 0, "character": 12866 @@ -192995,8 +186853,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -193015,8 +186872,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -193035,13 +186891,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -193066,13 +186920,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -193106,8 +186958,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", + "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", "rule_loc": [ "File", { @@ -193183,13 +187034,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", + "rule_text": "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 108, "column": 0, "character": 3601 @@ -193204,8 +187053,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -193300,13 +187148,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -193398,13 +187244,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -193419,13 +187263,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -193440,13 +187282,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -193461,13 +187301,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -193539,13 +187377,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -193636,13 +187472,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -193676,13 +187510,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -193716,13 +187548,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -193737,13 +187567,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -194043,13 +187871,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -194068,8 +187894,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -194094,13 +187919,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -194115,8 +187938,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -194148,8 +187970,7 @@ "Inference", { "current_goal_id": 1644, - "current_goal_text": - "copy (app [global (const «Builders_18.HB_unnamed_factory_20»), c0, c1]) \n X191^2", + "current_goal_text": "copy (app [global (const «Builders_18.HB_unnamed_factory_20»), c0, c1]) \n X191^2", "current_goal_predicate": "copy", "failed_attempts": [], "successful_attempts": [ @@ -194158,8 +187979,7 @@ "rule": [ "UserRule", { - "rule_text": - "(copy (app A0) (app A1)) :- (!), (std.map A0 copy A1).", + "rule_text": "(copy (app A0) (app A1)) :- (!), (std.map A0 copy A1).", "rule_loc": [ "File", { @@ -194182,8 +188002,7 @@ "siblings": [ { "goal_text": "!", "goal_id": 1655 }, { - "goal_text": - "std.map [global (const «Builders_18.HB_unnamed_factory_20»), c0, c1] copy \n X202^2", + "goal_text": "std.map [global (const «Builders_18.HB_unnamed_factory_20»), c0, c1] copy \n X202^2", "goal_id": 1656 } ], @@ -194196,8 +188015,7 @@ "rule": [ "UserRule", { - "rule_text": - "(copy (app A0) (app A1)) :- (!), (std.map A0 copy A1).", + "rule_text": "(copy (app A0) (app A1)) :- (!), (std.map A0 copy A1).", "rule_loc": [ "File", { @@ -194221,13 +188039,11 @@ "rule": [ "UserRule", { - "rule_text": - "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", + "rule_text": "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 318, "column": 0, "character": 12866 @@ -194242,8 +188058,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -194262,8 +188077,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -194282,13 +188096,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -194313,13 +188125,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -194353,8 +188163,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", + "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", "rule_loc": [ "File", { @@ -194430,13 +188239,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", + "rule_text": "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 108, "column": 0, "character": 3601 @@ -194451,8 +188258,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -194547,13 +188353,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -194645,13 +188449,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -194666,13 +188468,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -194687,13 +188487,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -194708,13 +188506,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -194786,13 +188582,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -194883,13 +188677,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -194923,13 +188715,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -194963,13 +188753,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -194984,13 +188772,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -195290,13 +189076,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -195315,8 +189099,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -195341,13 +189124,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -195362,8 +189143,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -195401,8 +189181,7 @@ "Inference", { "current_goal_id": 1656, - "current_goal_text": - "std.map [global (const «Builders_18.HB_unnamed_factory_20»), c0, c1] copy \n X202^2", + "current_goal_text": "std.map [global (const «Builders_18.HB_unnamed_factory_20»), c0, c1] copy \n X202^2", "current_goal_predicate": "std.map", "failed_attempts": [], "successful_attempts": [ @@ -195411,8 +189190,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -195436,8 +189214,7 @@ }, "siblings": [ { - "goal_text": - "copy (global (const «Builders_18.HB_unnamed_factory_20»)) X203^2", + "goal_text": "copy (global (const «Builders_18.HB_unnamed_factory_20»)) X203^2", "goal_id": 1657 }, { @@ -195454,8 +189231,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -195474,8 +189250,7 @@ "rule": [ "UserRule", { - "rule_text": - "(copy (app A0) (app A1)) :- (!), (std.map A0 copy A1).", + "rule_text": "(copy (app A0) (app A1)) :- (!), (std.map A0 copy A1).", "rule_loc": [ "File", { @@ -195499,13 +189274,11 @@ "rule": [ "UserRule", { - "rule_text": - "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", + "rule_text": "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 318, "column": 0, "character": 12866 @@ -195520,8 +189293,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -195540,8 +189312,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -195560,13 +189331,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -195591,13 +189360,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -195631,8 +189398,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", + "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", "rule_loc": [ "File", { @@ -195708,13 +189474,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", + "rule_text": "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 108, "column": 0, "character": 3601 @@ -195729,8 +189493,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -195825,13 +189588,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -195923,13 +189684,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -195944,13 +189703,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -195965,13 +189722,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -195986,13 +189741,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -196064,13 +189817,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -196161,13 +189912,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -196201,13 +189950,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -196241,13 +189988,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -196262,13 +190007,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -196568,13 +190311,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -196593,8 +190334,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -196619,13 +190359,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -196640,8 +190378,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -196673,8 +190410,7 @@ "Inference", { "current_goal_id": 1657, - "current_goal_text": - "copy (global (const «Builders_18.HB_unnamed_factory_20»)) X203^2", + "current_goal_text": "copy (global (const «Builders_18.HB_unnamed_factory_20»)) X203^2", "current_goal_predicate": "copy", "failed_attempts": [], "successful_attempts": [ @@ -196683,8 +190419,7 @@ "rule": [ "UserRule", { - "rule_text": - "(copy A0 A1) :- (name A0), (!), (A0 = A1), (!).", + "rule_text": "(copy A0 A1) :- (name A0), (!), (A0 = A1), (!).", "rule_loc": [ "File", { @@ -196706,14 +190441,12 @@ }, "siblings": [ { - "goal_text": - "name (global (const «Builders_18.HB_unnamed_factory_20»))", + "goal_text": "name (global (const «Builders_18.HB_unnamed_factory_20»))", "goal_id": 1659 }, { "goal_text": "!", "goal_id": 1660 }, { - "goal_text": - "global (const «Builders_18.HB_unnamed_factory_20») = X203^2", + "goal_text": "global (const «Builders_18.HB_unnamed_factory_20») = X203^2", "goal_id": 1661 }, { "goal_text": "!", "goal_id": 1662 } @@ -196727,8 +190460,7 @@ "rule": [ "UserRule", { - "rule_text": - "(copy A0 A1) :- (name A0), (!), (A0 = A1), (!).", + "rule_text": "(copy A0 A1) :- (name A0), (!), (A0 = A1), (!).", "rule_loc": [ "File", { @@ -196747,8 +190479,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -196767,8 +190498,7 @@ "rule": [ "UserRule", { - "rule_text": - "(copy (app A0) (app A1)) :- (!), (std.map A0 copy A1).", + "rule_text": "(copy (app A0) (app A1)) :- (!), (std.map A0 copy A1).", "rule_loc": [ "File", { @@ -196792,13 +190522,11 @@ "rule": [ "UserRule", { - "rule_text": - "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", + "rule_text": "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 318, "column": 0, "character": 12866 @@ -196813,8 +190541,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -196833,8 +190560,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -196853,13 +190579,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -196884,13 +190608,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -196924,8 +190646,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", + "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", "rule_loc": [ "File", { @@ -197001,13 +190722,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", + "rule_text": "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 108, "column": 0, "character": 3601 @@ -197022,8 +190741,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -197118,13 +190836,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -197216,13 +190932,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -197237,13 +190951,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -197258,13 +190970,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -197279,13 +190989,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -197357,13 +191065,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -197454,13 +191160,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -197494,13 +191198,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -197534,13 +191236,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -197555,13 +191255,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -197861,13 +191559,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -197886,8 +191582,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -197912,13 +191607,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -197933,8 +191626,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -197966,8 +191658,7 @@ "Inference", { "current_goal_id": 1659, - "current_goal_text": - "name (global (const «Builders_18.HB_unnamed_factory_20»))", + "current_goal_text": "name (global (const «Builders_18.HB_unnamed_factory_20»))", "current_goal_predicate": "name", "failed_attempts": [ { "rule": [ "BuiltinRule", [ "FFI", "name" ] ], "events": [] } @@ -197984,8 +191675,7 @@ "rule": [ "UserRule", { - "rule_text": - "(copy A0 A1) :- (name A0), (!), (A0 = A1), (!).", + "rule_text": "(copy A0 A1) :- (name A0), (!), (A0 = A1), (!).", "rule_loc": [ "File", { @@ -198004,8 +191694,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -198024,8 +191713,7 @@ "rule": [ "UserRule", { - "rule_text": - "(copy (app A0) (app A1)) :- (!), (std.map A0 copy A1).", + "rule_text": "(copy (app A0) (app A1)) :- (!), (std.map A0 copy A1).", "rule_loc": [ "File", { @@ -198049,13 +191737,11 @@ "rule": [ "UserRule", { - "rule_text": - "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", + "rule_text": "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 318, "column": 0, "character": 12866 @@ -198070,8 +191756,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -198090,8 +191775,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -198110,13 +191794,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -198141,13 +191823,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -198181,8 +191861,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", + "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", "rule_loc": [ "File", { @@ -198258,13 +191937,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", + "rule_text": "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 108, "column": 0, "character": 3601 @@ -198279,8 +191956,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -198375,13 +192051,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -198473,13 +192147,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -198494,13 +192166,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -198515,13 +192185,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -198536,13 +192204,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -198614,13 +192280,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -198711,13 +192375,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -198751,13 +192413,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -198791,13 +192451,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -198812,13 +192470,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -199118,13 +192774,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -199143,8 +192797,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -199169,13 +192822,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -199190,8 +192841,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -199223,8 +192873,7 @@ "Inference", { "current_goal_id": 1657, - "current_goal_text": - "copy (global (const «Builders_18.HB_unnamed_factory_20»)) X203^2", + "current_goal_text": "copy (global (const «Builders_18.HB_unnamed_factory_20»)) X203^2", "current_goal_predicate": "copy", "failed_attempts": [], "successful_attempts": [ @@ -199285,8 +192934,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -199305,8 +192953,7 @@ "rule": [ "UserRule", { - "rule_text": - "(copy (app A0) (app A1)) :- (!), (std.map A0 copy A1).", + "rule_text": "(copy (app A0) (app A1)) :- (!), (std.map A0 copy A1).", "rule_loc": [ "File", { @@ -199330,13 +192977,11 @@ "rule": [ "UserRule", { - "rule_text": - "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", + "rule_text": "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 318, "column": 0, "character": 12866 @@ -199351,8 +192996,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -199371,8 +193015,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -199391,13 +193034,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -199422,13 +193063,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -199462,8 +193101,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", + "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", "rule_loc": [ "File", { @@ -199539,13 +193177,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", + "rule_text": "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 108, "column": 0, "character": 3601 @@ -199560,8 +193196,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -199656,13 +193291,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -199754,13 +193387,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -199775,13 +193406,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -199796,13 +193425,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -199817,13 +193444,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -199895,13 +193520,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -199992,13 +193615,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -200032,13 +193653,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -200072,13 +193691,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -200093,13 +193710,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -200399,13 +194014,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -200424,8 +194037,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -200450,13 +194062,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -200471,8 +194081,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -200519,8 +194128,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -200552,8 +194160,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -200572,8 +194179,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -200592,8 +194198,7 @@ "rule": [ "UserRule", { - "rule_text": - "(copy (app A0) (app A1)) :- (!), (std.map A0 copy A1).", + "rule_text": "(copy (app A0) (app A1)) :- (!), (std.map A0 copy A1).", "rule_loc": [ "File", { @@ -200617,13 +194222,11 @@ "rule": [ "UserRule", { - "rule_text": - "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", + "rule_text": "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 318, "column": 0, "character": 12866 @@ -200638,8 +194241,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -200658,8 +194260,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -200678,13 +194279,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -200709,13 +194308,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -200749,8 +194346,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", + "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", "rule_loc": [ "File", { @@ -200826,13 +194422,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", + "rule_text": "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 108, "column": 0, "character": 3601 @@ -200847,8 +194441,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -200943,13 +194536,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -201041,13 +194632,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -201062,13 +194651,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -201083,13 +194670,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -201104,13 +194689,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -201182,13 +194765,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -201279,13 +194860,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -201319,13 +194898,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -201359,13 +194936,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -201380,13 +194955,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -201686,13 +195259,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -201711,8 +195282,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -201737,13 +195307,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -201758,8 +195326,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -201800,8 +195367,7 @@ "rule": [ "UserRule", { - "rule_text": - "(copy A0 A1) :- (name A0), (!), (A0 = A1), (!).", + "rule_text": "(copy A0 A1) :- (name A0), (!), (A0 = A1), (!).", "rule_loc": [ "File", { @@ -201814,8 +195380,7 @@ } ], "events": [ - [ "Assign", "A0 := c0" ], - [ "Assign", "A1 := X205^2" ] + [ "Assign", "A0 := c0" ], [ "Assign", "A1 := X205^2" ] ] }, "siblings": [ @@ -201833,8 +195398,7 @@ "rule": [ "UserRule", { - "rule_text": - "(copy A0 A1) :- (name A0), (!), (A0 = A1), (!).", + "rule_text": "(copy A0 A1) :- (name A0), (!), (A0 = A1), (!).", "rule_loc": [ "File", { @@ -201853,8 +195417,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -201873,8 +195436,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -201893,8 +195455,7 @@ "rule": [ "UserRule", { - "rule_text": - "(copy (app A0) (app A1)) :- (!), (std.map A0 copy A1).", + "rule_text": "(copy (app A0) (app A1)) :- (!), (std.map A0 copy A1).", "rule_loc": [ "File", { @@ -201918,13 +195479,11 @@ "rule": [ "UserRule", { - "rule_text": - "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", + "rule_text": "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 318, "column": 0, "character": 12866 @@ -201939,8 +195498,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -201959,8 +195517,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -201979,13 +195536,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -202010,13 +195565,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -202050,8 +195603,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", + "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", "rule_loc": [ "File", { @@ -202127,13 +195679,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", + "rule_text": "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 108, "column": 0, "character": 3601 @@ -202148,8 +195698,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -202244,13 +195793,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -202342,13 +195889,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -202363,13 +195908,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -202384,13 +195927,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -202405,13 +195946,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -202483,13 +196022,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -202580,13 +196117,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -202620,13 +196155,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -202660,13 +196193,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -202681,13 +196212,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -202987,13 +196516,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -203012,8 +196539,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -203038,13 +196564,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -203059,8 +196583,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -203116,8 +196639,7 @@ "rule": [ "UserRule", { - "rule_text": - "(copy A0 A1) :- (name A0), (!), (A0 = A1), (!).", + "rule_text": "(copy A0 A1) :- (name A0), (!), (A0 = A1), (!).", "rule_loc": [ "File", { @@ -203136,8 +196658,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -203156,8 +196677,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -203176,8 +196696,7 @@ "rule": [ "UserRule", { - "rule_text": - "(copy (app A0) (app A1)) :- (!), (std.map A0 copy A1).", + "rule_text": "(copy (app A0) (app A1)) :- (!), (std.map A0 copy A1).", "rule_loc": [ "File", { @@ -203201,13 +196720,11 @@ "rule": [ "UserRule", { - "rule_text": - "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", + "rule_text": "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 318, "column": 0, "character": 12866 @@ -203222,8 +196739,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -203242,8 +196758,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -203262,13 +196777,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -203293,13 +196806,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -203333,8 +196844,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", + "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", "rule_loc": [ "File", { @@ -203410,13 +196920,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", + "rule_text": "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 108, "column": 0, "character": 3601 @@ -203431,8 +196939,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -203527,13 +197034,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -203625,13 +197130,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -203646,13 +197149,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -203667,13 +197168,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -203688,13 +197187,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -203766,13 +197263,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -203863,13 +197358,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -203903,13 +197396,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -203943,13 +197434,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -203964,13 +197453,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -204270,13 +197757,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -204295,8 +197780,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -204321,13 +197805,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -204342,8 +197824,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -204404,8 +197885,7 @@ "rule": [ "UserRule", { - "rule_text": - "(copy A0 A1) :- (name A0), (!), (A0 = A1), (!).", + "rule_text": "(copy A0 A1) :- (name A0), (!), (A0 = A1), (!).", "rule_loc": [ "File", { @@ -204424,8 +197904,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -204444,8 +197923,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -204464,8 +197942,7 @@ "rule": [ "UserRule", { - "rule_text": - "(copy (app A0) (app A1)) :- (!), (std.map A0 copy A1).", + "rule_text": "(copy (app A0) (app A1)) :- (!), (std.map A0 copy A1).", "rule_loc": [ "File", { @@ -204489,13 +197966,11 @@ "rule": [ "UserRule", { - "rule_text": - "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", + "rule_text": "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 318, "column": 0, "character": 12866 @@ -204510,8 +197985,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -204530,8 +198004,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -204550,13 +198023,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -204581,13 +198052,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -204621,8 +198090,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", + "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", "rule_loc": [ "File", { @@ -204698,13 +198166,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", + "rule_text": "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 108, "column": 0, "character": 3601 @@ -204719,8 +198185,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -204815,13 +198280,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -204913,13 +198376,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -204934,13 +198395,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -204955,13 +198414,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -204976,13 +198433,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -205054,13 +198509,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -205151,13 +198604,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -205191,13 +198642,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -205231,13 +198680,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -205252,13 +198699,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -205558,13 +199003,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -205583,8 +199026,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -205609,13 +199051,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -205630,8 +199070,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -205693,8 +199132,7 @@ "rule": [ "UserRule", { - "rule_text": - "(copy A0 A1) :- (name A0), (!), (A0 = A1), (!).", + "rule_text": "(copy A0 A1) :- (name A0), (!), (A0 = A1), (!).", "rule_loc": [ "File", { @@ -205713,8 +199151,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -205733,8 +199170,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -205753,8 +199189,7 @@ "rule": [ "UserRule", { - "rule_text": - "(copy (app A0) (app A1)) :- (!), (std.map A0 copy A1).", + "rule_text": "(copy (app A0) (app A1)) :- (!), (std.map A0 copy A1).", "rule_loc": [ "File", { @@ -205778,13 +199213,11 @@ "rule": [ "UserRule", { - "rule_text": - "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", + "rule_text": "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 318, "column": 0, "character": 12866 @@ -205799,8 +199232,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -205819,8 +199251,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -205839,13 +199270,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -205870,13 +199299,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -205910,8 +199337,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", + "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", "rule_loc": [ "File", { @@ -205987,13 +199413,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", + "rule_text": "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 108, "column": 0, "character": 3601 @@ -206008,8 +199432,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -206104,13 +199527,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -206202,13 +199623,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -206223,13 +199642,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -206244,13 +199661,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -206265,13 +199680,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -206343,13 +199756,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -206440,13 +199851,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -206480,13 +199889,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -206520,13 +199927,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -206541,13 +199946,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -206847,13 +200250,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -206872,8 +200273,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -206898,13 +200298,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -206919,8 +200317,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -206967,8 +200364,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -207000,8 +200396,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -207020,8 +200415,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -207040,8 +200434,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -207060,8 +200453,7 @@ "rule": [ "UserRule", { - "rule_text": - "(copy (app A0) (app A1)) :- (!), (std.map A0 copy A1).", + "rule_text": "(copy (app A0) (app A1)) :- (!), (std.map A0 copy A1).", "rule_loc": [ "File", { @@ -207085,13 +200477,11 @@ "rule": [ "UserRule", { - "rule_text": - "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", + "rule_text": "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 318, "column": 0, "character": 12866 @@ -207106,8 +200496,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -207126,8 +200515,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -207146,13 +200534,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -207177,13 +200563,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -207217,8 +200601,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", + "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", "rule_loc": [ "File", { @@ -207294,13 +200677,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", + "rule_text": "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 108, "column": 0, "character": 3601 @@ -207315,8 +200696,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -207411,13 +200791,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -207509,13 +200887,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -207530,13 +200906,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -207551,13 +200925,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -207572,13 +200944,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -207650,13 +201020,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -207747,13 +201115,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -207787,13 +201153,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -207827,13 +201191,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -207848,13 +201210,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -208154,13 +201514,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -208179,8 +201537,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -208205,13 +201562,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -208226,8 +201581,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -208268,8 +201622,7 @@ "rule": [ "UserRule", { - "rule_text": - "(copy A0 A1) :- (name A0), (!), (A0 = A1), (!).", + "rule_text": "(copy A0 A1) :- (name A0), (!), (A0 = A1), (!).", "rule_loc": [ "File", { @@ -208282,8 +201635,7 @@ } ], "events": [ - [ "Assign", "A0 := c1" ], - [ "Assign", "A1 := X207^2" ] + [ "Assign", "A0 := c1" ], [ "Assign", "A1 := X207^2" ] ] }, "siblings": [ @@ -208301,8 +201653,7 @@ "rule": [ "UserRule", { - "rule_text": - "(copy A0 A1) :- (name A0), (!), (A0 = A1), (!).", + "rule_text": "(copy A0 A1) :- (name A0), (!), (A0 = A1), (!).", "rule_loc": [ "File", { @@ -208321,8 +201672,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -208341,8 +201691,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -208361,8 +201710,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -208381,8 +201729,7 @@ "rule": [ "UserRule", { - "rule_text": - "(copy (app A0) (app A1)) :- (!), (std.map A0 copy A1).", + "rule_text": "(copy (app A0) (app A1)) :- (!), (std.map A0 copy A1).", "rule_loc": [ "File", { @@ -208406,13 +201753,11 @@ "rule": [ "UserRule", { - "rule_text": - "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", + "rule_text": "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 318, "column": 0, "character": 12866 @@ -208427,8 +201772,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -208447,8 +201791,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -208467,13 +201810,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -208498,13 +201839,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -208538,8 +201877,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", + "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", "rule_loc": [ "File", { @@ -208615,13 +201953,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", + "rule_text": "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 108, "column": 0, "character": 3601 @@ -208636,8 +201972,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -208732,13 +202067,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -208830,13 +202163,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -208851,13 +202182,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -208872,13 +202201,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -208893,13 +202220,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -208971,13 +202296,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -209068,13 +202391,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -209108,13 +202429,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -209148,13 +202467,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -209169,13 +202486,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -209475,13 +202790,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -209500,8 +202813,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -209526,13 +202838,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -209547,8 +202857,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -209604,8 +202913,7 @@ "rule": [ "UserRule", { - "rule_text": - "(copy A0 A1) :- (name A0), (!), (A0 = A1), (!).", + "rule_text": "(copy A0 A1) :- (name A0), (!), (A0 = A1), (!).", "rule_loc": [ "File", { @@ -209624,8 +202932,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -209644,8 +202951,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -209664,8 +202970,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -209684,8 +202989,7 @@ "rule": [ "UserRule", { - "rule_text": - "(copy (app A0) (app A1)) :- (!), (std.map A0 copy A1).", + "rule_text": "(copy (app A0) (app A1)) :- (!), (std.map A0 copy A1).", "rule_loc": [ "File", { @@ -209709,13 +203013,11 @@ "rule": [ "UserRule", { - "rule_text": - "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", + "rule_text": "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 318, "column": 0, "character": 12866 @@ -209730,8 +203032,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -209750,8 +203051,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -209770,13 +203070,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -209801,13 +203099,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -209841,8 +203137,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", + "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", "rule_loc": [ "File", { @@ -209918,13 +203213,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", + "rule_text": "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 108, "column": 0, "character": 3601 @@ -209939,8 +203232,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -210035,13 +203327,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -210133,13 +203423,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -210154,13 +203442,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -210175,13 +203461,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -210196,13 +203480,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -210274,13 +203556,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -210371,13 +203651,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -210411,13 +203689,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -210451,13 +203727,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -210472,13 +203746,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -210778,13 +204050,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -210803,8 +204073,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -210829,13 +204098,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -210850,8 +204117,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -210912,8 +204178,7 @@ "rule": [ "UserRule", { - "rule_text": - "(copy A0 A1) :- (name A0), (!), (A0 = A1), (!).", + "rule_text": "(copy A0 A1) :- (name A0), (!), (A0 = A1), (!).", "rule_loc": [ "File", { @@ -210932,8 +204197,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -210952,8 +204216,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -210972,8 +204235,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -210992,8 +204254,7 @@ "rule": [ "UserRule", { - "rule_text": - "(copy (app A0) (app A1)) :- (!), (std.map A0 copy A1).", + "rule_text": "(copy (app A0) (app A1)) :- (!), (std.map A0 copy A1).", "rule_loc": [ "File", { @@ -211017,13 +204278,11 @@ "rule": [ "UserRule", { - "rule_text": - "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", + "rule_text": "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 318, "column": 0, "character": 12866 @@ -211038,8 +204297,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -211058,8 +204316,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -211078,13 +204335,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -211109,13 +204364,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -211149,8 +204402,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", + "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", "rule_loc": [ "File", { @@ -211226,13 +204478,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", + "rule_text": "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 108, "column": 0, "character": 3601 @@ -211247,8 +204497,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -211343,13 +204592,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -211441,13 +204688,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -211462,13 +204707,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -211483,13 +204726,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -211504,13 +204745,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -211582,13 +204821,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -211679,13 +204916,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -211719,13 +204954,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -211759,13 +204992,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -211780,13 +205011,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -212086,13 +205315,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -212111,8 +205338,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -212137,13 +205363,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -212158,8 +205382,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -212221,8 +205444,7 @@ "rule": [ "UserRule", { - "rule_text": - "(copy A0 A1) :- (name A0), (!), (A0 = A1), (!).", + "rule_text": "(copy A0 A1) :- (name A0), (!), (A0 = A1), (!).", "rule_loc": [ "File", { @@ -212241,8 +205463,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -212261,8 +205482,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -212281,8 +205501,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -212301,8 +205520,7 @@ "rule": [ "UserRule", { - "rule_text": - "(copy (app A0) (app A1)) :- (!), (std.map A0 copy A1).", + "rule_text": "(copy (app A0) (app A1)) :- (!), (std.map A0 copy A1).", "rule_loc": [ "File", { @@ -212326,13 +205544,11 @@ "rule": [ "UserRule", { - "rule_text": - "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", + "rule_text": "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 318, "column": 0, "character": 12866 @@ -212347,8 +205563,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -212367,8 +205582,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -212387,13 +205601,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -212418,13 +205630,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -212458,8 +205668,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", + "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", "rule_loc": [ "File", { @@ -212535,13 +205744,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", + "rule_text": "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 108, "column": 0, "character": 3601 @@ -212556,8 +205763,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -212652,13 +205858,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -212750,13 +205954,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -212771,13 +205973,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -212792,13 +205992,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -212813,13 +206011,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -212891,13 +206087,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -212988,13 +206182,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -213028,13 +206220,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -213068,13 +206258,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -213089,13 +206277,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -213395,13 +206581,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -213420,8 +206604,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -213446,13 +206629,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -213467,8 +206648,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -213558,8 +206738,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -213578,8 +206757,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -213598,8 +206776,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -213618,8 +206795,7 @@ "rule": [ "UserRule", { - "rule_text": - "(copy (app A0) (app A1)) :- (!), (std.map A0 copy A1).", + "rule_text": "(copy (app A0) (app A1)) :- (!), (std.map A0 copy A1).", "rule_loc": [ "File", { @@ -213643,13 +206819,11 @@ "rule": [ "UserRule", { - "rule_text": - "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", + "rule_text": "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 318, "column": 0, "character": 12866 @@ -213664,8 +206838,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -213684,8 +206857,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -213704,13 +206876,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -213735,13 +206905,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -213775,8 +206943,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", + "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", "rule_loc": [ "File", { @@ -213852,13 +207019,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", + "rule_text": "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 108, "column": 0, "character": 3601 @@ -213873,8 +207038,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -213969,13 +207133,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -214067,13 +207229,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -214088,13 +207248,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -214109,13 +207267,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -214130,13 +207286,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -214208,13 +207362,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -214305,13 +207457,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -214345,13 +207495,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -214385,13 +207533,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -214406,13 +207552,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -214712,13 +207856,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -214737,8 +207879,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -214763,13 +207904,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -214784,8 +207923,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -214817,8 +207955,7 @@ "Inference", { "current_goal_id": 1635, - "current_goal_text": - "std.map [app [global (const «Builders_18.HB_unnamed_factory_22»), c0, c1]] \n (copy-pack-holes c0) X192^2", + "current_goal_text": "std.map [app [global (const «Builders_18.HB_unnamed_factory_22»), c0, c1]] \n (copy-pack-holes c0) X192^2", "current_goal_predicate": "std.map", "failed_attempts": [], "successful_attempts": [ @@ -214827,8 +207964,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -214852,8 +207988,7 @@ }, "siblings": [ { - "goal_text": - "copy-pack-holes c0 \n (app [global (const «Builders_18.HB_unnamed_factory_22»), c0, c1]) X209^2", + "goal_text": "copy-pack-holes c0 \n (app [global (const «Builders_18.HB_unnamed_factory_22»), c0, c1]) X209^2", "goal_id": 1678 }, { @@ -214870,8 +208005,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -214890,8 +208024,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -214910,8 +208043,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -214930,13 +208062,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -214961,13 +208091,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -215001,8 +208129,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", + "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", "rule_loc": [ "File", { @@ -215078,13 +208205,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", + "rule_text": "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 108, "column": 0, "character": 3601 @@ -215099,8 +208224,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -215195,13 +208319,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -215293,13 +208415,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -215314,13 +208434,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -215335,13 +208453,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -215356,13 +208472,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -215434,13 +208548,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -215531,13 +208643,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -215571,13 +208681,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -215611,13 +208719,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -215632,13 +208738,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -215938,13 +209042,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -215963,8 +209065,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -215989,13 +209090,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -216010,8 +209109,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -216043,8 +209141,7 @@ "Inference", { "current_goal_id": 1678, - "current_goal_text": - "copy-pack-holes c0 \n (app [global (const «Builders_18.HB_unnamed_factory_22»), c0, c1]) X209^2", + "current_goal_text": "copy-pack-holes c0 \n (app [global (const «Builders_18.HB_unnamed_factory_22»), c0, c1]) X209^2", "current_goal_predicate": "copy-pack-holes", "failed_attempts": [], "successful_attempts": [ @@ -216053,13 +209150,11 @@ "rule": [ "UserRule", { - "rule_text": - "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", + "rule_text": "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 318, "column": 0, "character": 12866 @@ -216086,8 +209181,7 @@ "goal_id": 1681 }, { - "goal_text": - "[pi c2 \\\n pi c3 \\\n pi c4 \\\n pi c5 \\\n pi c6 \\\n pi c7 \\\n copy (app [global c7 | c2]) (app [global c7 | c3]) :-\n , (pack? c7 _) (!) (std.rev c2 [c4, c0 | c5]) (copy c0 X213^2) \n (std.map c5 copy c6) \n (std.rev [global (const «elpi.hole»), X213^2 | c6] c3) | X212^2]\n =>\n copy (app [global (const «Builders_18.HB_unnamed_factory_22»), c0, c1]) \n X209^2", + "goal_text": "[pi c2 \\\n pi c3 \\\n pi c4 \\\n pi c5 \\\n pi c6 \\\n pi c7 \\\n copy (app [global c7 | c2]) (app [global c7 | c3]) :-\n , (pack? c7 _) (!) (std.rev c2 [c4, c0 | c5]) (copy c0 X213^2) \n (std.map c5 copy c6) \n (std.rev [global (const «elpi.hole»), X213^2 | c6] c3) | X212^2]\n =>\n copy (app [global (const «Builders_18.HB_unnamed_factory_22»), c0, c1]) \n X209^2", "goal_id": 1682 } ], @@ -216100,13 +209194,11 @@ "rule": [ "UserRule", { - "rule_text": - "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", + "rule_text": "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 318, "column": 0, "character": 12866 @@ -216121,8 +209213,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -216141,8 +209232,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -216161,8 +209251,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -216181,13 +209270,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -216212,13 +209299,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -216252,8 +209337,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", + "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", "rule_loc": [ "File", { @@ -216329,13 +209413,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", + "rule_text": "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 108, "column": 0, "character": 3601 @@ -216350,8 +209432,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -216446,13 +209527,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -216544,13 +209623,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -216565,13 +209642,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -216586,13 +209661,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -216607,13 +209680,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -216685,13 +209756,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -216782,13 +209851,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -216822,13 +209889,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -216862,13 +209927,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -216883,13 +209946,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -217189,13 +210250,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -217214,8 +210273,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -217240,13 +210298,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -217261,8 +210317,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -217303,13 +210358,11 @@ "rule": [ "UserRule", { - "rule_text": - "(findall-local-canonical A0) :- (std.findall (local-canonical A1) A2), \n (std.map A2 local-canonical-gref A0).", + "rule_text": "(findall-local-canonical A0) :- (std.findall (local-canonical A1) A2), \n (std.map A2 local-canonical-gref A0).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 200, "column": 0, "character": 7260 @@ -217338,13 +210391,11 @@ "rule": [ "UserRule", { - "rule_text": - "(findall-local-canonical A0) :- (std.findall (local-canonical A1) A2), \n (std.map A2 local-canonical-gref A0).", + "rule_text": "(findall-local-canonical A0) :- (std.findall (local-canonical A1) A2), \n (std.map A2 local-canonical-gref A0).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 200, "column": 0, "character": 7260 @@ -217359,13 +210410,11 @@ "rule": [ "UserRule", { - "rule_text": - "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", + "rule_text": "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 318, "column": 0, "character": 12866 @@ -217380,8 +210429,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -217400,8 +210448,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -217420,8 +210467,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -217440,13 +210486,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -217471,13 +210515,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -217511,8 +210553,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", + "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", "rule_loc": [ "File", { @@ -217588,13 +210629,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", + "rule_text": "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 108, "column": 0, "character": 3601 @@ -217609,8 +210648,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -217705,13 +210743,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -217803,13 +210839,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -217824,13 +210858,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -217845,13 +210877,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -217866,13 +210896,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -217944,13 +210972,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -218041,13 +211067,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -218081,13 +211105,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -218121,13 +211143,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -218142,13 +211162,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -218448,13 +211466,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -218473,8 +211489,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -218499,13 +211514,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -218520,8 +211533,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -218562,8 +211574,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.findall A0 A1) :- (findall_solutions A0 A1).", + "rule_text": "(std.findall A0 A1) :- (findall_solutions A0 A1).", "rule_loc": [ "File", { @@ -218582,8 +211593,7 @@ }, "siblings": [ { - "goal_text": - "findall_solutions (local-canonical X214^2) X215^2", + "goal_text": "findall_solutions (local-canonical X214^2) X215^2", "goal_id": 1685 } ], @@ -218596,8 +211606,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.findall A0 A1) :- (findall_solutions A0 A1).", + "rule_text": "(std.findall A0 A1) :- (findall_solutions A0 A1).", "rule_loc": [ "File", { @@ -218616,13 +211625,11 @@ "rule": [ "UserRule", { - "rule_text": - "(findall-local-canonical A0) :- (std.findall (local-canonical A1) A2), \n (std.map A2 local-canonical-gref A0).", + "rule_text": "(findall-local-canonical A0) :- (std.findall (local-canonical A1) A2), \n (std.map A2 local-canonical-gref A0).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 200, "column": 0, "character": 7260 @@ -218637,13 +211644,11 @@ "rule": [ "UserRule", { - "rule_text": - "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", + "rule_text": "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 318, "column": 0, "character": 12866 @@ -218658,8 +211663,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -218678,8 +211682,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -218698,8 +211701,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -218718,13 +211720,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -218749,13 +211749,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -218789,8 +211787,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", + "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", "rule_loc": [ "File", { @@ -218866,13 +211863,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", + "rule_text": "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 108, "column": 0, "character": 3601 @@ -218887,8 +211882,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -218983,13 +211977,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -219081,13 +212073,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -219102,13 +212092,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -219123,13 +212111,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -219144,13 +212130,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -219222,13 +212206,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -219319,13 +212301,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -219359,13 +212339,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -219399,13 +212377,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -219420,13 +212396,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -219726,13 +212700,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -219751,8 +212723,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -219777,13 +212748,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -219798,8 +212767,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -219831,8 +212799,7 @@ "Findall", { "findall_goal_id": 1685, - "findall_goal_text": - "findall_solutions (local-canonical X214^2) X215^2", + "findall_goal_text": "findall_solutions (local-canonical X214^2) X215^2", "findall_cards": [ { "step_id": 0, @@ -219872,8 +212839,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.findall A0 A1) :- (findall_solutions A0 A1).", + "rule_text": "(std.findall A0 A1) :- (findall_solutions A0 A1).", "rule_loc": [ "File", { @@ -219892,13 +212858,11 @@ "rule": [ "UserRule", { - "rule_text": - "(findall-local-canonical A0) :- (std.findall (local-canonical A1) A2), \n (std.map A2 local-canonical-gref A0).", + "rule_text": "(findall-local-canonical A0) :- (std.findall (local-canonical A1) A2), \n (std.map A2 local-canonical-gref A0).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 200, "column": 0, "character": 7260 @@ -219913,13 +212877,11 @@ "rule": [ "UserRule", { - "rule_text": - "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", + "rule_text": "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 318, "column": 0, "character": 12866 @@ -219934,8 +212896,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -219954,8 +212915,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -219974,8 +212934,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -219994,13 +212953,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -220025,13 +212982,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -220065,8 +213020,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", + "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", "rule_loc": [ "File", { @@ -220142,13 +213096,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", + "rule_text": "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 108, "column": 0, "character": 3601 @@ -220163,8 +213115,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -220259,13 +213210,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -220357,13 +213306,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -220378,13 +213325,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -220399,13 +213344,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -220420,13 +213363,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -220498,13 +213439,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -220595,13 +213534,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -220635,13 +213572,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -220675,13 +213610,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -220696,13 +213629,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -221002,13 +213933,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -221027,8 +213956,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -221053,13 +213981,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -221074,8 +214000,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -221159,13 +214084,11 @@ "rule": [ "UserRule", { - "rule_text": - "(findall-local-canonical A0) :- (std.findall (local-canonical A1) A2), \n (std.map A2 local-canonical-gref A0).", + "rule_text": "(findall-local-canonical A0) :- (std.findall (local-canonical A1) A2), \n (std.map A2 local-canonical-gref A0).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 200, "column": 0, "character": 7260 @@ -221180,13 +214103,11 @@ "rule": [ "UserRule", { - "rule_text": - "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", + "rule_text": "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 318, "column": 0, "character": 12866 @@ -221201,8 +214122,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -221221,8 +214141,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -221241,8 +214160,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -221261,13 +214179,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -221292,13 +214208,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -221332,8 +214246,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", + "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", "rule_loc": [ "File", { @@ -221409,13 +214322,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", + "rule_text": "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 108, "column": 0, "character": 3601 @@ -221430,8 +214341,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -221526,13 +214436,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -221624,13 +214532,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -221645,13 +214551,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -221666,13 +214570,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -221687,13 +214589,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -221765,13 +214665,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -221862,13 +214760,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -221902,13 +214798,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -221942,13 +214836,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -221963,13 +214855,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -222269,13 +215159,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -222294,8 +215182,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -222320,13 +215207,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -222341,8 +215226,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -222387,8 +215271,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/stdpp.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/stdpp.elpi", "line": 196, "column": 0, "character": 7411 @@ -222412,8 +215295,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/stdpp.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/stdpp.elpi", "line": 196, "column": 0, "character": 7411 @@ -222428,13 +215310,11 @@ "rule": [ "UserRule", { - "rule_text": - "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", + "rule_text": "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 318, "column": 0, "character": 12866 @@ -222449,8 +215329,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -222469,8 +215348,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -222489,8 +215367,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -222509,13 +215386,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -222540,13 +215415,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -222580,8 +215453,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", + "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", "rule_loc": [ "File", { @@ -222657,13 +215529,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", + "rule_text": "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 108, "column": 0, "character": 3601 @@ -222678,8 +215548,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -222774,13 +215643,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -222872,13 +215739,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -222893,13 +215758,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -222914,13 +215777,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -222935,13 +215796,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -223013,13 +215872,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -223110,13 +215967,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -223150,13 +216005,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -223190,13 +216043,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -223211,13 +216062,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -223517,13 +216366,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -223542,8 +216389,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -223568,13 +216414,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -223589,8 +216433,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -223622,8 +216465,7 @@ "Inference", { "current_goal_id": 1682, - "current_goal_text": - "[pi c2 \\\n pi c3 \\\n pi c4 \\\n pi c5 \\\n pi c6 \\\n pi c7 \\\n copy (app [global c7 | c2]) (app [global c7 | c3]) :-\n , (pack? c7 _) (!) (std.rev c2 [c4, c0 | c5]) (copy c0 X213^2) \n (std.map c5 copy c6) \n (std.rev [global (const «elpi.hole»), X213^2 | c6] c3)] =>\n copy (app [global (const «Builders_18.HB_unnamed_factory_22»), c0, c1]) \n X209^2", + "current_goal_text": "[pi c2 \\\n pi c3 \\\n pi c4 \\\n pi c5 \\\n pi c6 \\\n pi c7 \\\n copy (app [global c7 | c2]) (app [global c7 | c3]) :-\n , (pack? c7 _) (!) (std.rev c2 [c4, c0 | c5]) (copy c0 X213^2) \n (std.map c5 copy c6) \n (std.rev [global (const «elpi.hole»), X213^2 | c6] c3)] =>\n copy (app [global (const «Builders_18.HB_unnamed_factory_22»), c0, c1]) \n X209^2", "current_goal_predicate": "=>", "failed_attempts": [], "successful_attempts": [ @@ -223634,8 +216476,7 @@ }, "siblings": [ { - "goal_text": - "copy (app [global (const «Builders_18.HB_unnamed_factory_22»), c0, c1]) \n X209^2", + "goal_text": "copy (app [global (const «Builders_18.HB_unnamed_factory_22»), c0, c1]) \n X209^2", "goal_id": 1688 } ], @@ -223653,13 +216494,11 @@ "rule": [ "UserRule", { - "rule_text": - "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", + "rule_text": "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 318, "column": 0, "character": 12866 @@ -223674,8 +216513,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -223694,8 +216532,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -223714,8 +216551,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -223734,13 +216570,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -223765,13 +216599,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -223805,8 +216637,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", + "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", "rule_loc": [ "File", { @@ -223882,13 +216713,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", + "rule_text": "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 108, "column": 0, "character": 3601 @@ -223903,8 +216732,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -223999,13 +216827,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -224097,13 +216923,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -224118,13 +216942,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -224139,13 +216961,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -224160,13 +216980,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -224238,13 +217056,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -224335,13 +217151,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -224375,13 +217189,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -224415,13 +217227,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -224436,13 +217246,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -224742,13 +217550,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -224767,8 +217573,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -224793,13 +217598,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -224814,8 +217617,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -224847,8 +217649,7 @@ "Inference", { "current_goal_id": 1688, - "current_goal_text": - "copy (app [global (const «Builders_18.HB_unnamed_factory_22»), c0, c1]) \n X209^2", + "current_goal_text": "copy (app [global (const «Builders_18.HB_unnamed_factory_22»), c0, c1]) \n X209^2", "current_goal_predicate": "copy", "failed_attempts": [], "successful_attempts": [ @@ -224857,8 +217658,7 @@ "rule": [ "UserRule", { - "rule_text": - "(copy (app [global A5 | A0]) (app [global A5 | A1])) :- (pack? A5 _), (!), \n (std.rev A0 [A2, c0 | A3]), (copy c0 X213^2), (std.map A3 copy A4), \n (std.rev [global (const «elpi.hole»), X213^2 | A4] A1).", + "rule_text": "(copy (app [global A5 | A0]) (app [global A5 | A1])) :- (pack? A5 _), (!), \n (std.rev A0 [A2, c0 | A3]), (copy c0 X213^2), (std.map A3 copy A4), \n (std.rev [global (const «elpi.hole»), X213^2 | A4] A1).", "rule_loc": [ "Context", 485 ] } ], @@ -224876,8 +217676,7 @@ }, "siblings": [ { - "goal_text": - "pack? (const «Builders_18.HB_unnamed_factory_22») _", + "goal_text": "pack? (const «Builders_18.HB_unnamed_factory_22») _", "goal_id": 1689 }, { "goal_text": "!", "goal_id": 1690 }, @@ -224888,8 +217687,7 @@ { "goal_text": "copy c0 X213^2", "goal_id": 1692 }, { "goal_text": "std.map X218^2 copy X219^2", "goal_id": 1693 }, { - "goal_text": - "std.rev [global (const «elpi.hole»), X213^2 | X219^2] X216^2", + "goal_text": "std.rev [global (const «elpi.hole»), X213^2 | X219^2] X216^2", "goal_id": 1694 } ], @@ -224902,8 +217700,7 @@ "rule": [ "UserRule", { - "rule_text": - "(copy (app [global A5 | A0]) (app [global A5 | A1])) :- (pack? A5 _), (!), \n (std.rev A0 [A2, c0 | A3]), (copy c0 X213^2), (std.map A3 copy A4), \n (std.rev [global (const «elpi.hole»), X213^2 | A4] A1).", + "rule_text": "(copy (app [global A5 | A0]) (app [global A5 | A1])) :- (pack? A5 _), (!), \n (std.rev A0 [A2, c0 | A3]), (copy c0 X213^2), (std.map A3 copy A4), \n (std.rev [global (const «elpi.hole»), X213^2 | A4] A1).", "rule_loc": [ "Context", 485 ] } ], @@ -224919,13 +217716,11 @@ "rule": [ "UserRule", { - "rule_text": - "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", + "rule_text": "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 318, "column": 0, "character": 12866 @@ -224940,8 +217735,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -224960,8 +217754,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -224980,8 +217773,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -225000,13 +217792,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -225031,13 +217821,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -225071,8 +217859,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", + "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", "rule_loc": [ "File", { @@ -225148,13 +217935,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", + "rule_text": "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 108, "column": 0, "character": 3601 @@ -225169,8 +217954,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -225265,13 +218049,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -225363,13 +218145,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -225384,13 +218164,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -225405,13 +218183,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -225426,13 +218202,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -225504,13 +218278,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -225601,13 +218373,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -225641,13 +218411,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -225681,13 +218449,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -225702,13 +218468,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -226008,13 +218772,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -226033,8 +218795,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -226059,13 +218820,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -226080,8 +218839,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -226113,8 +218871,7 @@ "Inference", { "current_goal_id": 1689, - "current_goal_text": - "pack? (const «Builders_18.HB_unnamed_factory_22») _", + "current_goal_text": "pack? (const «Builders_18.HB_unnamed_factory_22») _", "current_goal_predicate": "pack?", "failed_attempts": [], "successful_attempts": [], @@ -226124,8 +218881,7 @@ "rule": [ "UserRule", { - "rule_text": - "(copy (app [global A5 | A0]) (app [global A5 | A1])) :- (pack? A5 _), (!), \n (std.rev A0 [A2, c0 | A3]), (copy c0 X213^2), (std.map A3 copy A4), \n (std.rev [global (const «elpi.hole»), X213^2 | A4] A1).", + "rule_text": "(copy (app [global A5 | A0]) (app [global A5 | A1])) :- (pack? A5 _), (!), \n (std.rev A0 [A2, c0 | A3]), (copy c0 X213^2), (std.map A3 copy A4), \n (std.rev [global (const «elpi.hole»), X213^2 | A4] A1).", "rule_loc": [ "Context", 485 ] } ], @@ -226141,13 +218897,11 @@ "rule": [ "UserRule", { - "rule_text": - "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", + "rule_text": "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 318, "column": 0, "character": 12866 @@ -226162,8 +218916,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -226182,8 +218935,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -226202,8 +218954,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -226222,13 +218973,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -226253,13 +219002,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -226293,8 +219040,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", + "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", "rule_loc": [ "File", { @@ -226370,13 +219116,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", + "rule_text": "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 108, "column": 0, "character": 3601 @@ -226391,8 +219135,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -226487,13 +219230,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -226585,13 +219326,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -226606,13 +219345,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -226627,13 +219364,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -226648,13 +219383,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -226726,13 +219459,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -226823,13 +219554,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -226863,13 +219592,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -226903,13 +219630,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -226924,13 +219649,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -227230,13 +219953,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -227255,8 +219976,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -227281,13 +220001,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -227302,8 +220020,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -227335,8 +220052,7 @@ "Inference", { "current_goal_id": 1688, - "current_goal_text": - "copy (app [global (const «Builders_18.HB_unnamed_factory_22»), c0, c1]) \n X209^2", + "current_goal_text": "copy (app [global (const «Builders_18.HB_unnamed_factory_22»), c0, c1]) \n X209^2", "current_goal_predicate": "copy", "failed_attempts": [], "successful_attempts": [ @@ -227345,8 +220061,7 @@ "rule": [ "UserRule", { - "rule_text": - "(copy A0 A1) :- (name A0), (!), (A0 = A1), (!).", + "rule_text": "(copy A0 A1) :- (name A0), (!), (A0 = A1), (!).", "rule_loc": [ "File", { @@ -227368,14 +220083,12 @@ }, "siblings": [ { - "goal_text": - "name (app [global (const «Builders_18.HB_unnamed_factory_22»), c0, c1])", + "goal_text": "name (app [global (const «Builders_18.HB_unnamed_factory_22»), c0, c1])", "goal_id": 1695 }, { "goal_text": "!", "goal_id": 1696 }, { - "goal_text": - "app [global (const «Builders_18.HB_unnamed_factory_22»), c0, c1] = X209^2", + "goal_text": "app [global (const «Builders_18.HB_unnamed_factory_22»), c0, c1] = X209^2", "goal_id": 1697 }, { "goal_text": "!", "goal_id": 1698 } @@ -227389,8 +220102,7 @@ "rule": [ "UserRule", { - "rule_text": - "(copy A0 A1) :- (name A0), (!), (A0 = A1), (!).", + "rule_text": "(copy A0 A1) :- (name A0), (!), (A0 = A1), (!).", "rule_loc": [ "File", { @@ -227414,13 +220126,11 @@ "rule": [ "UserRule", { - "rule_text": - "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", + "rule_text": "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 318, "column": 0, "character": 12866 @@ -227435,8 +220145,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -227455,8 +220164,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -227475,8 +220183,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -227495,13 +220202,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -227526,13 +220231,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -227566,8 +220269,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", + "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", "rule_loc": [ "File", { @@ -227643,13 +220345,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", + "rule_text": "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 108, "column": 0, "character": 3601 @@ -227664,8 +220364,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -227760,13 +220459,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -227858,13 +220555,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -227879,13 +220574,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -227900,13 +220593,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -227921,13 +220612,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -227999,13 +220688,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -228096,13 +220783,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -228136,13 +220821,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -228176,13 +220859,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -228197,13 +220878,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -228503,13 +221182,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -228528,8 +221205,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -228554,13 +221230,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -228575,8 +221249,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -228608,8 +221281,7 @@ "Inference", { "current_goal_id": 1695, - "current_goal_text": - "name (app [global (const «Builders_18.HB_unnamed_factory_22»), c0, c1])", + "current_goal_text": "name (app [global (const «Builders_18.HB_unnamed_factory_22»), c0, c1])", "current_goal_predicate": "name", "failed_attempts": [ { "rule": [ "BuiltinRule", [ "FFI", "name" ] ], "events": [] } @@ -228626,8 +221298,7 @@ "rule": [ "UserRule", { - "rule_text": - "(copy A0 A1) :- (name A0), (!), (A0 = A1), (!).", + "rule_text": "(copy A0 A1) :- (name A0), (!), (A0 = A1), (!).", "rule_loc": [ "File", { @@ -228651,13 +221322,11 @@ "rule": [ "UserRule", { - "rule_text": - "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", + "rule_text": "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 318, "column": 0, "character": 12866 @@ -228672,8 +221341,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -228692,8 +221360,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -228712,8 +221379,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -228732,13 +221398,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -228763,13 +221427,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -228803,8 +221465,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", + "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", "rule_loc": [ "File", { @@ -228880,13 +221541,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", + "rule_text": "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 108, "column": 0, "character": 3601 @@ -228901,8 +221560,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -228997,13 +221655,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -229095,13 +221751,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -229116,13 +221770,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -229137,13 +221789,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -229158,13 +221808,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -229236,13 +221884,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -229333,13 +221979,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -229373,13 +222017,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -229413,13 +222055,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -229434,13 +222074,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -229740,13 +222378,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -229765,8 +222401,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -229791,13 +222426,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -229812,8 +222445,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -229845,8 +222477,7 @@ "Inference", { "current_goal_id": 1688, - "current_goal_text": - "copy (app [global (const «Builders_18.HB_unnamed_factory_22»), c0, c1]) \n X209^2", + "current_goal_text": "copy (app [global (const «Builders_18.HB_unnamed_factory_22»), c0, c1]) \n X209^2", "current_goal_predicate": "copy", "failed_attempts": [], "successful_attempts": [ @@ -229855,8 +222486,7 @@ "rule": [ "UserRule", { - "rule_text": - "(copy (app A0) (app A1)) :- (!), (std.map A0 copy A1).", + "rule_text": "(copy (app A0) (app A1)) :- (!), (std.map A0 copy A1).", "rule_loc": [ "File", { @@ -229879,8 +222509,7 @@ "siblings": [ { "goal_text": "!", "goal_id": 1699 }, { - "goal_text": - "std.map [global (const «Builders_18.HB_unnamed_factory_22»), c0, c1] copy \n X220^2", + "goal_text": "std.map [global (const «Builders_18.HB_unnamed_factory_22»), c0, c1] copy \n X220^2", "goal_id": 1700 } ], @@ -229893,8 +222522,7 @@ "rule": [ "UserRule", { - "rule_text": - "(copy (app A0) (app A1)) :- (!), (std.map A0 copy A1).", + "rule_text": "(copy (app A0) (app A1)) :- (!), (std.map A0 copy A1).", "rule_loc": [ "File", { @@ -229918,13 +222546,11 @@ "rule": [ "UserRule", { - "rule_text": - "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", + "rule_text": "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 318, "column": 0, "character": 12866 @@ -229939,8 +222565,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -229959,8 +222584,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -229979,8 +222603,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -229999,13 +222622,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -230030,13 +222651,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -230070,8 +222689,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", + "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", "rule_loc": [ "File", { @@ -230147,13 +222765,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", + "rule_text": "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 108, "column": 0, "character": 3601 @@ -230168,8 +222784,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -230264,13 +222879,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -230362,13 +222975,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -230383,13 +222994,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -230404,13 +223013,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -230425,13 +223032,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -230503,13 +223108,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -230600,13 +223203,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -230640,13 +223241,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -230680,13 +223279,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -230701,13 +223298,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -231007,13 +223602,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -231032,8 +223625,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -231058,13 +223650,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -231079,8 +223669,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -231118,8 +223707,7 @@ "Inference", { "current_goal_id": 1700, - "current_goal_text": - "std.map [global (const «Builders_18.HB_unnamed_factory_22»), c0, c1] copy \n X220^2", + "current_goal_text": "std.map [global (const «Builders_18.HB_unnamed_factory_22»), c0, c1] copy \n X220^2", "current_goal_predicate": "std.map", "failed_attempts": [], "successful_attempts": [ @@ -231128,8 +223716,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -231153,8 +223740,7 @@ }, "siblings": [ { - "goal_text": - "copy (global (const «Builders_18.HB_unnamed_factory_22»)) X221^2", + "goal_text": "copy (global (const «Builders_18.HB_unnamed_factory_22»)) X221^2", "goal_id": 1701 }, { @@ -231171,8 +223757,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -231191,8 +223776,7 @@ "rule": [ "UserRule", { - "rule_text": - "(copy (app A0) (app A1)) :- (!), (std.map A0 copy A1).", + "rule_text": "(copy (app A0) (app A1)) :- (!), (std.map A0 copy A1).", "rule_loc": [ "File", { @@ -231216,13 +223800,11 @@ "rule": [ "UserRule", { - "rule_text": - "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", + "rule_text": "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 318, "column": 0, "character": 12866 @@ -231237,8 +223819,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -231257,8 +223838,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -231277,8 +223857,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -231297,13 +223876,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -231328,13 +223905,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -231368,8 +223943,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", + "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", "rule_loc": [ "File", { @@ -231445,13 +224019,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", + "rule_text": "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 108, "column": 0, "character": 3601 @@ -231466,8 +224038,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -231562,13 +224133,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -231660,13 +224229,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -231681,13 +224248,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -231702,13 +224267,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -231723,13 +224286,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -231801,13 +224362,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -231898,13 +224457,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -231938,13 +224495,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -231978,13 +224533,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -231999,13 +224552,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -232305,13 +224856,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -232330,8 +224879,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -232356,13 +224904,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -232377,8 +224923,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -232410,8 +224955,7 @@ "Inference", { "current_goal_id": 1701, - "current_goal_text": - "copy (global (const «Builders_18.HB_unnamed_factory_22»)) X221^2", + "current_goal_text": "copy (global (const «Builders_18.HB_unnamed_factory_22»)) X221^2", "current_goal_predicate": "copy", "failed_attempts": [], "successful_attempts": [ @@ -232420,8 +224964,7 @@ "rule": [ "UserRule", { - "rule_text": - "(copy A0 A1) :- (name A0), (!), (A0 = A1), (!).", + "rule_text": "(copy A0 A1) :- (name A0), (!), (A0 = A1), (!).", "rule_loc": [ "File", { @@ -232443,14 +224986,12 @@ }, "siblings": [ { - "goal_text": - "name (global (const «Builders_18.HB_unnamed_factory_22»))", + "goal_text": "name (global (const «Builders_18.HB_unnamed_factory_22»))", "goal_id": 1703 }, { "goal_text": "!", "goal_id": 1704 }, { - "goal_text": - "global (const «Builders_18.HB_unnamed_factory_22») = X221^2", + "goal_text": "global (const «Builders_18.HB_unnamed_factory_22») = X221^2", "goal_id": 1705 }, { "goal_text": "!", "goal_id": 1706 } @@ -232464,8 +225005,7 @@ "rule": [ "UserRule", { - "rule_text": - "(copy A0 A1) :- (name A0), (!), (A0 = A1), (!).", + "rule_text": "(copy A0 A1) :- (name A0), (!), (A0 = A1), (!).", "rule_loc": [ "File", { @@ -232484,8 +225024,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -232504,8 +225043,7 @@ "rule": [ "UserRule", { - "rule_text": - "(copy (app A0) (app A1)) :- (!), (std.map A0 copy A1).", + "rule_text": "(copy (app A0) (app A1)) :- (!), (std.map A0 copy A1).", "rule_loc": [ "File", { @@ -232529,13 +225067,11 @@ "rule": [ "UserRule", { - "rule_text": - "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", + "rule_text": "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 318, "column": 0, "character": 12866 @@ -232550,8 +225086,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -232570,8 +225105,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -232590,8 +225124,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -232610,13 +225143,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -232641,13 +225172,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -232681,8 +225210,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", + "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", "rule_loc": [ "File", { @@ -232758,13 +225286,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", + "rule_text": "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 108, "column": 0, "character": 3601 @@ -232779,8 +225305,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -232875,13 +225400,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -232973,13 +225496,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -232994,13 +225515,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -233015,13 +225534,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -233036,13 +225553,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -233114,13 +225629,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -233211,13 +225724,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -233251,13 +225762,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -233291,13 +225800,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -233312,13 +225819,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -233618,13 +226123,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -233643,8 +226146,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -233669,13 +226171,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -233690,8 +226190,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -233723,8 +226222,7 @@ "Inference", { "current_goal_id": 1703, - "current_goal_text": - "name (global (const «Builders_18.HB_unnamed_factory_22»))", + "current_goal_text": "name (global (const «Builders_18.HB_unnamed_factory_22»))", "current_goal_predicate": "name", "failed_attempts": [ { "rule": [ "BuiltinRule", [ "FFI", "name" ] ], "events": [] } @@ -233741,8 +226239,7 @@ "rule": [ "UserRule", { - "rule_text": - "(copy A0 A1) :- (name A0), (!), (A0 = A1), (!).", + "rule_text": "(copy A0 A1) :- (name A0), (!), (A0 = A1), (!).", "rule_loc": [ "File", { @@ -233761,8 +226258,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -233781,8 +226277,7 @@ "rule": [ "UserRule", { - "rule_text": - "(copy (app A0) (app A1)) :- (!), (std.map A0 copy A1).", + "rule_text": "(copy (app A0) (app A1)) :- (!), (std.map A0 copy A1).", "rule_loc": [ "File", { @@ -233806,13 +226301,11 @@ "rule": [ "UserRule", { - "rule_text": - "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", + "rule_text": "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 318, "column": 0, "character": 12866 @@ -233827,8 +226320,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -233847,8 +226339,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -233867,8 +226358,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -233887,13 +226377,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -233918,13 +226406,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -233958,8 +226444,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", + "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", "rule_loc": [ "File", { @@ -234035,13 +226520,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", + "rule_text": "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 108, "column": 0, "character": 3601 @@ -234056,8 +226539,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -234152,13 +226634,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -234250,13 +226730,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -234271,13 +226749,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -234292,13 +226768,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -234313,13 +226787,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -234391,13 +226863,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -234488,13 +226958,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -234528,13 +226996,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -234568,13 +227034,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -234589,13 +227053,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -234895,13 +227357,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -234920,8 +227380,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -234946,13 +227405,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -234967,8 +227424,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -235000,8 +227456,7 @@ "Inference", { "current_goal_id": 1701, - "current_goal_text": - "copy (global (const «Builders_18.HB_unnamed_factory_22»)) X221^2", + "current_goal_text": "copy (global (const «Builders_18.HB_unnamed_factory_22»)) X221^2", "current_goal_predicate": "copy", "failed_attempts": [], "successful_attempts": [ @@ -235062,8 +227517,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -235082,8 +227536,7 @@ "rule": [ "UserRule", { - "rule_text": - "(copy (app A0) (app A1)) :- (!), (std.map A0 copy A1).", + "rule_text": "(copy (app A0) (app A1)) :- (!), (std.map A0 copy A1).", "rule_loc": [ "File", { @@ -235107,13 +227560,11 @@ "rule": [ "UserRule", { - "rule_text": - "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", + "rule_text": "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 318, "column": 0, "character": 12866 @@ -235128,8 +227579,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -235148,8 +227598,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -235168,8 +227617,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -235188,13 +227636,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -235219,13 +227665,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -235259,8 +227703,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", + "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", "rule_loc": [ "File", { @@ -235336,13 +227779,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", + "rule_text": "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 108, "column": 0, "character": 3601 @@ -235357,8 +227798,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -235453,13 +227893,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -235551,13 +227989,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -235572,13 +228008,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -235593,13 +228027,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -235614,13 +228046,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -235692,13 +228122,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -235789,13 +228217,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -235829,13 +228255,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -235869,13 +228293,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -235890,13 +228312,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -236196,13 +228616,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -236221,8 +228639,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -236247,13 +228664,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -236268,8 +228683,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -236316,8 +228730,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -236349,8 +228762,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -236369,8 +228781,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -236389,8 +228800,7 @@ "rule": [ "UserRule", { - "rule_text": - "(copy (app A0) (app A1)) :- (!), (std.map A0 copy A1).", + "rule_text": "(copy (app A0) (app A1)) :- (!), (std.map A0 copy A1).", "rule_loc": [ "File", { @@ -236414,13 +228824,11 @@ "rule": [ "UserRule", { - "rule_text": - "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", + "rule_text": "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 318, "column": 0, "character": 12866 @@ -236435,8 +228843,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -236455,8 +228862,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -236475,8 +228881,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -236495,13 +228900,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -236526,13 +228929,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -236566,8 +228967,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", + "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", "rule_loc": [ "File", { @@ -236643,13 +229043,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", + "rule_text": "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 108, "column": 0, "character": 3601 @@ -236664,8 +229062,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -236760,13 +229157,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -236858,13 +229253,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -236879,13 +229272,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -236900,13 +229291,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -236921,13 +229310,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -236999,13 +229386,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -237096,13 +229481,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -237136,13 +229519,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -237176,13 +229557,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -237197,13 +229576,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -237503,13 +229880,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -237528,8 +229903,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -237554,13 +229928,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -237575,8 +229947,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -237617,8 +229988,7 @@ "rule": [ "UserRule", { - "rule_text": - "(copy A0 A1) :- (name A0), (!), (A0 = A1), (!).", + "rule_text": "(copy A0 A1) :- (name A0), (!), (A0 = A1), (!).", "rule_loc": [ "File", { @@ -237631,8 +230001,7 @@ } ], "events": [ - [ "Assign", "A0 := c0" ], - [ "Assign", "A1 := X223^2" ] + [ "Assign", "A0 := c0" ], [ "Assign", "A1 := X223^2" ] ] }, "siblings": [ @@ -237650,8 +230019,7 @@ "rule": [ "UserRule", { - "rule_text": - "(copy A0 A1) :- (name A0), (!), (A0 = A1), (!).", + "rule_text": "(copy A0 A1) :- (name A0), (!), (A0 = A1), (!).", "rule_loc": [ "File", { @@ -237670,8 +230038,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -237690,8 +230057,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -237710,8 +230076,7 @@ "rule": [ "UserRule", { - "rule_text": - "(copy (app A0) (app A1)) :- (!), (std.map A0 copy A1).", + "rule_text": "(copy (app A0) (app A1)) :- (!), (std.map A0 copy A1).", "rule_loc": [ "File", { @@ -237735,13 +230100,11 @@ "rule": [ "UserRule", { - "rule_text": - "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", + "rule_text": "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 318, "column": 0, "character": 12866 @@ -237756,8 +230119,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -237776,8 +230138,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -237796,8 +230157,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -237816,13 +230176,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -237847,13 +230205,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -237887,8 +230243,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", + "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", "rule_loc": [ "File", { @@ -237964,13 +230319,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", + "rule_text": "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 108, "column": 0, "character": 3601 @@ -237985,8 +230338,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -238081,13 +230433,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -238179,13 +230529,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -238200,13 +230548,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -238221,13 +230567,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -238242,13 +230586,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -238320,13 +230662,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -238417,13 +230757,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -238457,13 +230795,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -238497,13 +230833,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -238518,13 +230852,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -238824,13 +231156,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -238849,8 +231179,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -238875,13 +231204,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -238896,8 +231223,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -238953,8 +231279,7 @@ "rule": [ "UserRule", { - "rule_text": - "(copy A0 A1) :- (name A0), (!), (A0 = A1), (!).", + "rule_text": "(copy A0 A1) :- (name A0), (!), (A0 = A1), (!).", "rule_loc": [ "File", { @@ -238973,8 +231298,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -238993,8 +231317,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -239013,8 +231336,7 @@ "rule": [ "UserRule", { - "rule_text": - "(copy (app A0) (app A1)) :- (!), (std.map A0 copy A1).", + "rule_text": "(copy (app A0) (app A1)) :- (!), (std.map A0 copy A1).", "rule_loc": [ "File", { @@ -239038,13 +231360,11 @@ "rule": [ "UserRule", { - "rule_text": - "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", + "rule_text": "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 318, "column": 0, "character": 12866 @@ -239059,8 +231379,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -239079,8 +231398,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -239099,8 +231417,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -239119,13 +231436,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -239150,13 +231465,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -239190,8 +231503,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", + "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", "rule_loc": [ "File", { @@ -239267,13 +231579,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", + "rule_text": "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 108, "column": 0, "character": 3601 @@ -239288,8 +231598,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -239384,13 +231693,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -239482,13 +231789,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -239503,13 +231808,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -239524,13 +231827,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -239545,13 +231846,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -239623,13 +231922,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -239720,13 +232017,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -239760,13 +232055,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -239800,13 +232093,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -239821,13 +232112,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -240127,13 +232416,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -240152,8 +232439,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -240178,13 +232464,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -240199,8 +232483,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -240261,8 +232544,7 @@ "rule": [ "UserRule", { - "rule_text": - "(copy A0 A1) :- (name A0), (!), (A0 = A1), (!).", + "rule_text": "(copy A0 A1) :- (name A0), (!), (A0 = A1), (!).", "rule_loc": [ "File", { @@ -240281,8 +232563,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -240301,8 +232582,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -240321,8 +232601,7 @@ "rule": [ "UserRule", { - "rule_text": - "(copy (app A0) (app A1)) :- (!), (std.map A0 copy A1).", + "rule_text": "(copy (app A0) (app A1)) :- (!), (std.map A0 copy A1).", "rule_loc": [ "File", { @@ -240346,13 +232625,11 @@ "rule": [ "UserRule", { - "rule_text": - "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", + "rule_text": "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 318, "column": 0, "character": 12866 @@ -240367,8 +232644,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -240387,8 +232663,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -240407,8 +232682,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -240427,13 +232701,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -240458,13 +232730,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -240498,8 +232768,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", + "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", "rule_loc": [ "File", { @@ -240575,13 +232844,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", + "rule_text": "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 108, "column": 0, "character": 3601 @@ -240596,8 +232863,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -240692,13 +232958,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -240790,13 +233054,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -240811,13 +233073,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -240832,13 +233092,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -240853,13 +233111,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -240931,13 +233187,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -241028,13 +233282,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -241068,13 +233320,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -241108,13 +233358,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -241129,13 +233377,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -241435,13 +233681,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -241460,8 +233704,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -241486,13 +233729,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -241507,8 +233748,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -241570,8 +233810,7 @@ "rule": [ "UserRule", { - "rule_text": - "(copy A0 A1) :- (name A0), (!), (A0 = A1), (!).", + "rule_text": "(copy A0 A1) :- (name A0), (!), (A0 = A1), (!).", "rule_loc": [ "File", { @@ -241590,8 +233829,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -241610,8 +233848,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -241630,8 +233867,7 @@ "rule": [ "UserRule", { - "rule_text": - "(copy (app A0) (app A1)) :- (!), (std.map A0 copy A1).", + "rule_text": "(copy (app A0) (app A1)) :- (!), (std.map A0 copy A1).", "rule_loc": [ "File", { @@ -241655,13 +233891,11 @@ "rule": [ "UserRule", { - "rule_text": - "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", + "rule_text": "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 318, "column": 0, "character": 12866 @@ -241676,8 +233910,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -241696,8 +233929,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -241716,8 +233948,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -241736,13 +233967,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -241767,13 +233996,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -241807,8 +234034,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", + "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", "rule_loc": [ "File", { @@ -241884,13 +234110,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", + "rule_text": "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 108, "column": 0, "character": 3601 @@ -241905,8 +234129,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -242001,13 +234224,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -242099,13 +234320,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -242120,13 +234339,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -242141,13 +234358,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -242162,13 +234377,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -242240,13 +234453,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -242337,13 +234548,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -242377,13 +234586,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -242417,13 +234624,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -242438,13 +234643,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -242744,13 +234947,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -242769,8 +234970,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -242795,13 +234995,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -242816,8 +235014,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -242864,8 +235061,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -242897,8 +235093,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -242917,8 +235112,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -242937,8 +235131,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -242957,8 +235150,7 @@ "rule": [ "UserRule", { - "rule_text": - "(copy (app A0) (app A1)) :- (!), (std.map A0 copy A1).", + "rule_text": "(copy (app A0) (app A1)) :- (!), (std.map A0 copy A1).", "rule_loc": [ "File", { @@ -242982,13 +235174,11 @@ "rule": [ "UserRule", { - "rule_text": - "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", + "rule_text": "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 318, "column": 0, "character": 12866 @@ -243003,8 +235193,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -243023,8 +235212,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -243043,8 +235231,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -243063,13 +235250,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -243094,13 +235279,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -243134,8 +235317,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", + "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", "rule_loc": [ "File", { @@ -243211,13 +235393,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", + "rule_text": "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 108, "column": 0, "character": 3601 @@ -243232,8 +235412,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -243328,13 +235507,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -243426,13 +235603,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -243447,13 +235622,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -243468,13 +235641,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -243489,13 +235660,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -243567,13 +235736,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -243664,13 +235831,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -243704,13 +235869,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -243744,13 +235907,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -243765,13 +235926,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -244071,13 +236230,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -244096,8 +236253,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -244122,13 +236278,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -244143,8 +236297,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -244185,8 +236338,7 @@ "rule": [ "UserRule", { - "rule_text": - "(copy A0 A1) :- (name A0), (!), (A0 = A1), (!).", + "rule_text": "(copy A0 A1) :- (name A0), (!), (A0 = A1), (!).", "rule_loc": [ "File", { @@ -244199,8 +236351,7 @@ } ], "events": [ - [ "Assign", "A0 := c1" ], - [ "Assign", "A1 := X225^2" ] + [ "Assign", "A0 := c1" ], [ "Assign", "A1 := X225^2" ] ] }, "siblings": [ @@ -244218,8 +236369,7 @@ "rule": [ "UserRule", { - "rule_text": - "(copy A0 A1) :- (name A0), (!), (A0 = A1), (!).", + "rule_text": "(copy A0 A1) :- (name A0), (!), (A0 = A1), (!).", "rule_loc": [ "File", { @@ -244238,8 +236388,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -244258,8 +236407,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -244278,8 +236426,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -244298,8 +236445,7 @@ "rule": [ "UserRule", { - "rule_text": - "(copy (app A0) (app A1)) :- (!), (std.map A0 copy A1).", + "rule_text": "(copy (app A0) (app A1)) :- (!), (std.map A0 copy A1).", "rule_loc": [ "File", { @@ -244323,13 +236469,11 @@ "rule": [ "UserRule", { - "rule_text": - "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", + "rule_text": "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 318, "column": 0, "character": 12866 @@ -244344,8 +236488,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -244364,8 +236507,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -244384,8 +236526,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -244404,13 +236545,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -244435,13 +236574,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -244475,8 +236612,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", + "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", "rule_loc": [ "File", { @@ -244552,13 +236688,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", + "rule_text": "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 108, "column": 0, "character": 3601 @@ -244573,8 +236707,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -244669,13 +236802,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -244767,13 +236898,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -244788,13 +236917,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -244809,13 +236936,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -244830,13 +236955,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -244908,13 +237031,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -245005,13 +237126,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -245045,13 +237164,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -245085,13 +237202,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -245106,13 +237221,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -245412,13 +237525,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -245437,8 +237548,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -245463,13 +237573,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -245484,8 +237592,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -245541,8 +237648,7 @@ "rule": [ "UserRule", { - "rule_text": - "(copy A0 A1) :- (name A0), (!), (A0 = A1), (!).", + "rule_text": "(copy A0 A1) :- (name A0), (!), (A0 = A1), (!).", "rule_loc": [ "File", { @@ -245561,8 +237667,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -245581,8 +237686,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -245601,8 +237705,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -245621,8 +237724,7 @@ "rule": [ "UserRule", { - "rule_text": - "(copy (app A0) (app A1)) :- (!), (std.map A0 copy A1).", + "rule_text": "(copy (app A0) (app A1)) :- (!), (std.map A0 copy A1).", "rule_loc": [ "File", { @@ -245646,13 +237748,11 @@ "rule": [ "UserRule", { - "rule_text": - "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", + "rule_text": "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 318, "column": 0, "character": 12866 @@ -245667,8 +237767,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -245687,8 +237786,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -245707,8 +237805,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -245727,13 +237824,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -245758,13 +237853,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -245798,8 +237891,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", + "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", "rule_loc": [ "File", { @@ -245875,13 +237967,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", + "rule_text": "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 108, "column": 0, "character": 3601 @@ -245896,8 +237986,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -245992,13 +238081,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -246090,13 +238177,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -246111,13 +238196,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -246132,13 +238215,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -246153,13 +238234,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -246231,13 +238310,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -246328,13 +238405,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -246368,13 +238443,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -246408,13 +238481,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -246429,13 +238500,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -246735,13 +238804,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -246760,8 +238827,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -246786,13 +238852,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -246807,8 +238871,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -246869,8 +238932,7 @@ "rule": [ "UserRule", { - "rule_text": - "(copy A0 A1) :- (name A0), (!), (A0 = A1), (!).", + "rule_text": "(copy A0 A1) :- (name A0), (!), (A0 = A1), (!).", "rule_loc": [ "File", { @@ -246889,8 +238951,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -246909,8 +238970,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -246929,8 +238989,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -246949,8 +239008,7 @@ "rule": [ "UserRule", { - "rule_text": - "(copy (app A0) (app A1)) :- (!), (std.map A0 copy A1).", + "rule_text": "(copy (app A0) (app A1)) :- (!), (std.map A0 copy A1).", "rule_loc": [ "File", { @@ -246974,13 +239032,11 @@ "rule": [ "UserRule", { - "rule_text": - "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", + "rule_text": "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 318, "column": 0, "character": 12866 @@ -246995,8 +239051,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -247015,8 +239070,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -247035,8 +239089,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -247055,13 +239108,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -247086,13 +239137,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -247126,8 +239175,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", + "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", "rule_loc": [ "File", { @@ -247203,13 +239251,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", + "rule_text": "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 108, "column": 0, "character": 3601 @@ -247224,8 +239270,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -247320,13 +239365,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -247418,13 +239461,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -247439,13 +239480,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -247460,13 +239499,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -247481,13 +239518,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -247559,13 +239594,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -247656,13 +239689,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -247696,13 +239727,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -247736,13 +239765,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -247757,13 +239784,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -248063,13 +240088,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -248088,8 +240111,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -248114,13 +240136,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -248135,8 +240155,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -248198,8 +240217,7 @@ "rule": [ "UserRule", { - "rule_text": - "(copy A0 A1) :- (name A0), (!), (A0 = A1), (!).", + "rule_text": "(copy A0 A1) :- (name A0), (!), (A0 = A1), (!).", "rule_loc": [ "File", { @@ -248218,8 +240236,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -248238,8 +240255,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -248258,8 +240274,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -248278,8 +240293,7 @@ "rule": [ "UserRule", { - "rule_text": - "(copy (app A0) (app A1)) :- (!), (std.map A0 copy A1).", + "rule_text": "(copy (app A0) (app A1)) :- (!), (std.map A0 copy A1).", "rule_loc": [ "File", { @@ -248303,13 +240317,11 @@ "rule": [ "UserRule", { - "rule_text": - "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", + "rule_text": "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 318, "column": 0, "character": 12866 @@ -248324,8 +240336,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -248344,8 +240355,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -248364,8 +240374,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -248384,13 +240393,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -248415,13 +240422,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -248455,8 +240460,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", + "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", "rule_loc": [ "File", { @@ -248532,13 +240536,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", + "rule_text": "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 108, "column": 0, "character": 3601 @@ -248553,8 +240555,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -248649,13 +240650,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -248747,13 +240746,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -248768,13 +240765,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -248789,13 +240784,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -248810,13 +240803,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -248888,13 +240879,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -248985,13 +240974,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -249025,13 +241012,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -249065,13 +241050,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -249086,13 +241069,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -249392,13 +241373,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -249417,8 +241396,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -249443,13 +241421,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -249464,8 +241440,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -249555,8 +241530,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -249575,8 +241549,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -249595,8 +241568,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -249615,8 +241587,7 @@ "rule": [ "UserRule", { - "rule_text": - "(copy (app A0) (app A1)) :- (!), (std.map A0 copy A1).", + "rule_text": "(copy (app A0) (app A1)) :- (!), (std.map A0 copy A1).", "rule_loc": [ "File", { @@ -249640,13 +241611,11 @@ "rule": [ "UserRule", { - "rule_text": - "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", + "rule_text": "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 318, "column": 0, "character": 12866 @@ -249661,8 +241630,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -249681,8 +241649,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -249701,8 +241668,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -249721,13 +241687,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -249752,13 +241716,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -249792,8 +241754,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", + "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", "rule_loc": [ "File", { @@ -249869,13 +241830,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", + "rule_text": "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 108, "column": 0, "character": 3601 @@ -249890,8 +241849,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -249986,13 +241944,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -250084,13 +242040,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -250105,13 +242059,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -250126,13 +242078,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -250147,13 +242097,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -250225,13 +242173,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -250322,13 +242268,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -250362,13 +242306,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -250402,13 +242344,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -250423,13 +242363,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -250729,13 +242667,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -250754,8 +242690,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -250780,13 +242715,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -250801,8 +242734,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -250886,8 +242818,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -250906,8 +242837,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -250926,8 +242856,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -250946,13 +242875,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -250977,13 +242904,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -251017,8 +242942,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", + "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", "rule_loc": [ "File", { @@ -251094,13 +243018,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", + "rule_text": "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 108, "column": 0, "character": 3601 @@ -251115,8 +243037,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -251211,13 +243132,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -251309,13 +243228,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -251330,13 +243247,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -251351,13 +243266,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -251372,13 +243285,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -251450,13 +243361,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -251547,13 +243456,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -251587,13 +243494,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -251627,13 +243532,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -251648,13 +243551,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -251954,13 +243855,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -251979,8 +243878,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -252005,13 +243903,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -252026,8 +243922,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -252059,8 +243954,7 @@ "Inference", { "current_goal_id": 1613, - "current_goal_text": - "std.spy\n (std.take 0 \n [c0, app [global (const «Builders_18.HB_unnamed_factory_20»), c0, c1], \n app [global (const «Builders_18.HB_unnamed_factory_22»), c0, c1]] \n X175^1)", + "current_goal_text": "std.spy\n (std.take 0 \n [c0, app [global (const «Builders_18.HB_unnamed_factory_20»), c0, c1], \n app [global (const «Builders_18.HB_unnamed_factory_22»), c0, c1]] \n X175^1)", "current_goal_predicate": "std.spy", "failed_attempts": [], "successful_attempts": [ @@ -252069,8 +243963,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.spy A0) :- (trace.counter run A1), \n (if (not (A1 = 0)) (std.debug-print run= A1) true), \n (std.debug-print ----<<---- enter: A0), A0, \n (std.debug-print ---->>---- exit: A0).", + "rule_text": "(std.spy A0) :- (trace.counter run A1), \n (if (not (A1 = 0)) (std.debug-print run= A1) true), \n (std.debug-print ----<<---- enter: A0), A0, \n (std.debug-print ---->>---- exit: A0).", "rule_loc": [ "File", { @@ -252092,23 +243985,19 @@ "siblings": [ { "goal_text": "trace.counter run X227^2", "goal_id": 1722 }, { - "goal_text": - "if (not (X227^2 = 0)) (std.debug-print run= X227^2) true", + "goal_text": "if (not (X227^2 = 0)) (std.debug-print run= X227^2) true", "goal_id": 1723 }, { - "goal_text": - "std.debug-print ----<<---- enter: \n (std.take 0 \n [c0, app [global (const «Builders_18.HB_unnamed_factory_20»), c0, c1], \n app [global (const «Builders_18.HB_unnamed_factory_22»), c0, c1]] \n X175^1)", + "goal_text": "std.debug-print ----<<---- enter: \n (std.take 0 \n [c0, app [global (const «Builders_18.HB_unnamed_factory_20»), c0, c1], \n app [global (const «Builders_18.HB_unnamed_factory_22»), c0, c1]] \n X175^1)", "goal_id": 1724 }, { - "goal_text": - "std.take 0 \n [c0, app [global (const «Builders_18.HB_unnamed_factory_20»), c0, c1], \n app [global (const «Builders_18.HB_unnamed_factory_22»), c0, c1]] X175^1", + "goal_text": "std.take 0 \n [c0, app [global (const «Builders_18.HB_unnamed_factory_20»), c0, c1], \n app [global (const «Builders_18.HB_unnamed_factory_22»), c0, c1]] X175^1", "goal_id": 1725 }, { - "goal_text": - "std.debug-print ---->>---- exit: \n (std.take 0 \n [c0, app [global (const «Builders_18.HB_unnamed_factory_20»), c0, c1], \n app [global (const «Builders_18.HB_unnamed_factory_22»), c0, c1]] \n X175^1)", + "goal_text": "std.debug-print ---->>---- exit: \n (std.take 0 \n [c0, app [global (const «Builders_18.HB_unnamed_factory_20»), c0, c1], \n app [global (const «Builders_18.HB_unnamed_factory_22»), c0, c1]] \n X175^1)", "goal_id": 1726 } ], @@ -252121,8 +244010,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.spy A0) :- (trace.counter run A1), \n (if (not (A1 = 0)) (std.debug-print run= A1) true), \n (std.debug-print ----<<---- enter: A0), A0, \n (std.debug-print ---->>---- exit: A0).", + "rule_text": "(std.spy A0) :- (trace.counter run A1), \n (if (not (A1 = 0)) (std.debug-print run= A1) true), \n (std.debug-print ----<<---- enter: A0), A0, \n (std.debug-print ---->>---- exit: A0).", "rule_loc": [ "File", { @@ -252141,13 +244029,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -252172,13 +244058,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -252212,8 +244096,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", + "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", "rule_loc": [ "File", { @@ -252289,13 +244172,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", + "rule_text": "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 108, "column": 0, "character": 3601 @@ -252310,8 +244191,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -252406,13 +244286,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -252504,13 +244382,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -252525,13 +244401,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -252546,13 +244420,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -252567,13 +244439,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -252645,13 +244515,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -252742,13 +244610,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -252782,13 +244648,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -252822,13 +244686,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -252843,13 +244705,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -253149,13 +245009,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -253174,8 +245032,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -253200,13 +245057,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -253221,8 +245076,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -253278,8 +245132,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.spy A0) :- (trace.counter run A1), \n (if (not (A1 = 0)) (std.debug-print run= A1) true), \n (std.debug-print ----<<---- enter: A0), A0, \n (std.debug-print ---->>---- exit: A0).", + "rule_text": "(std.spy A0) :- (trace.counter run A1), \n (if (not (A1 = 0)) (std.debug-print run= A1) true), \n (std.debug-print ----<<---- enter: A0), A0, \n (std.debug-print ---->>---- exit: A0).", "rule_loc": [ "File", { @@ -253298,13 +245151,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -253329,13 +245180,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -253369,8 +245218,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", + "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", "rule_loc": [ "File", { @@ -253446,13 +245294,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", + "rule_text": "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 108, "column": 0, "character": 3601 @@ -253467,8 +245313,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -253563,13 +245408,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -253661,13 +245504,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -253682,13 +245523,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -253703,13 +245542,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -253724,13 +245561,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -253802,13 +245637,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -253899,13 +245732,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -253939,13 +245770,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -253979,13 +245808,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -254000,13 +245827,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -254306,13 +246131,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -254331,8 +246154,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -254357,13 +246179,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -254378,8 +246198,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -254440,8 +246259,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.spy A0) :- (trace.counter run A1), \n (if (not (A1 = 0)) (std.debug-print run= A1) true), \n (std.debug-print ----<<---- enter: A0), A0, \n (std.debug-print ---->>---- exit: A0).", + "rule_text": "(std.spy A0) :- (trace.counter run A1), \n (if (not (A1 = 0)) (std.debug-print run= A1) true), \n (std.debug-print ----<<---- enter: A0), A0, \n (std.debug-print ---->>---- exit: A0).", "rule_loc": [ "File", { @@ -254460,13 +246278,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -254491,13 +246307,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -254531,8 +246345,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", + "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", "rule_loc": [ "File", { @@ -254608,13 +246421,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", + "rule_text": "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 108, "column": 0, "character": 3601 @@ -254629,8 +246440,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -254725,13 +246535,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -254823,13 +246631,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -254844,13 +246650,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -254865,13 +246669,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -254886,13 +246688,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -254964,13 +246764,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -255061,13 +246859,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -255101,13 +246897,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -255141,13 +246935,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -255162,13 +246954,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -255468,13 +247258,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -255493,8 +247281,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -255519,13 +247306,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -255540,8 +247325,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -255632,8 +247416,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.spy A0) :- (trace.counter run A1), \n (if (not (A1 = 0)) (std.debug-print run= A1) true), \n (std.debug-print ----<<---- enter: A0), A0, \n (std.debug-print ---->>---- exit: A0).", + "rule_text": "(std.spy A0) :- (trace.counter run A1), \n (if (not (A1 = 0)) (std.debug-print run= A1) true), \n (std.debug-print ----<<---- enter: A0), A0, \n (std.debug-print ---->>---- exit: A0).", "rule_loc": [ "File", { @@ -255652,13 +247435,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -255683,13 +247464,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -255723,8 +247502,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", + "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", "rule_loc": [ "File", { @@ -255800,13 +247578,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", + "rule_text": "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 108, "column": 0, "character": 3601 @@ -255821,8 +247597,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -255917,13 +247692,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -256015,13 +247788,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -256036,13 +247807,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -256057,13 +247826,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -256078,13 +247845,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -256156,13 +247921,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -256253,13 +248016,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -256293,13 +248054,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -256333,13 +248092,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -256354,13 +248111,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -256660,13 +248415,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -256685,8 +248438,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -256711,13 +248463,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -256732,8 +248482,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -256840,8 +248589,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.spy A0) :- (trace.counter run A1), \n (if (not (A1 = 0)) (std.debug-print run= A1) true), \n (std.debug-print ----<<---- enter: A0), A0, \n (std.debug-print ---->>---- exit: A0).", + "rule_text": "(std.spy A0) :- (trace.counter run A1), \n (if (not (A1 = 0)) (std.debug-print run= A1) true), \n (std.debug-print ----<<---- enter: A0), A0, \n (std.debug-print ---->>---- exit: A0).", "rule_loc": [ "File", { @@ -256860,13 +248608,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -256891,13 +248637,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -256931,8 +248675,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", + "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", "rule_loc": [ "File", { @@ -257008,13 +248751,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", + "rule_text": "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 108, "column": 0, "character": 3601 @@ -257029,8 +248770,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -257125,13 +248865,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -257223,13 +248961,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -257244,13 +248980,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -257265,13 +248999,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -257286,13 +249018,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -257364,13 +249094,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -257461,13 +249189,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -257501,13 +249227,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -257541,13 +249265,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -257562,13 +249284,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -257868,13 +249588,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -257893,8 +249611,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -257919,13 +249636,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -257940,8 +249655,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -258035,8 +249749,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.spy A0) :- (trace.counter run A1), \n (if (not (A1 = 0)) (std.debug-print run= A1) true), \n (std.debug-print ----<<---- enter: A0), A0, \n (std.debug-print ---->>---- exit: A0).", + "rule_text": "(std.spy A0) :- (trace.counter run A1), \n (if (not (A1 = 0)) (std.debug-print run= A1) true), \n (std.debug-print ----<<---- enter: A0), A0, \n (std.debug-print ---->>---- exit: A0).", "rule_loc": [ "File", { @@ -258055,13 +249768,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -258086,13 +249797,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -258126,8 +249835,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", + "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", "rule_loc": [ "File", { @@ -258203,13 +249911,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", + "rule_text": "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 108, "column": 0, "character": 3601 @@ -258224,8 +249930,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -258320,13 +250025,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -258418,13 +250121,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -258439,13 +250140,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -258460,13 +250159,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -258481,13 +250178,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -258559,13 +250254,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -258656,13 +250349,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -258696,13 +250387,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -258736,13 +250425,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -258757,13 +250444,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -259063,13 +250748,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -259088,8 +250771,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -259114,13 +250796,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -259135,8 +250815,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -259247,8 +250926,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.spy A0) :- (trace.counter run A1), \n (if (not (A1 = 0)) (std.debug-print run= A1) true), \n (std.debug-print ----<<---- enter: A0), A0, \n (std.debug-print ---->>---- exit: A0).", + "rule_text": "(std.spy A0) :- (trace.counter run A1), \n (if (not (A1 = 0)) (std.debug-print run= A1) true), \n (std.debug-print ----<<---- enter: A0), A0, \n (std.debug-print ---->>---- exit: A0).", "rule_loc": [ "File", { @@ -259267,13 +250945,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -259298,13 +250974,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -259338,8 +251012,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", + "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", "rule_loc": [ "File", { @@ -259415,13 +251088,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", + "rule_text": "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 108, "column": 0, "character": 3601 @@ -259436,8 +251107,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -259532,13 +251202,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -259630,13 +251298,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -259651,13 +251317,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -259672,13 +251336,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -259693,13 +251355,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -259771,13 +251431,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -259868,13 +251526,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -259908,13 +251564,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -259948,13 +251602,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -259969,13 +251621,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -260275,13 +251925,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -260300,8 +251948,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -260326,13 +251973,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -260347,8 +251992,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -260432,8 +252076,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.spy A0) :- (trace.counter run A1), \n (if (not (A1 = 0)) (std.debug-print run= A1) true), \n (std.debug-print ----<<---- enter: A0), A0, \n (std.debug-print ---->>---- exit: A0).", + "rule_text": "(std.spy A0) :- (trace.counter run A1), \n (if (not (A1 = 0)) (std.debug-print run= A1) true), \n (std.debug-print ----<<---- enter: A0), A0, \n (std.debug-print ---->>---- exit: A0).", "rule_loc": [ "File", { @@ -260452,13 +252095,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -260483,13 +252124,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -260523,8 +252162,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", + "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", "rule_loc": [ "File", { @@ -260600,13 +252238,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", + "rule_text": "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 108, "column": 0, "character": 3601 @@ -260621,8 +252257,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -260717,13 +252352,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -260815,13 +252448,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -260836,13 +252467,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -260857,13 +252486,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -260878,13 +252505,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -260956,13 +252581,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -261053,13 +252676,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -261093,13 +252714,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -261133,13 +252752,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -261154,13 +252771,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -261460,13 +253075,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -261485,8 +253098,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -261511,13 +253123,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -261532,8 +253142,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -261636,8 +253245,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.spy A0) :- (trace.counter run A1), \n (if (not (A1 = 0)) (std.debug-print run= A1) true), \n (std.debug-print ----<<---- enter: A0), A0, \n (std.debug-print ---->>---- exit: A0).", + "rule_text": "(std.spy A0) :- (trace.counter run A1), \n (if (not (A1 = 0)) (std.debug-print run= A1) true), \n (std.debug-print ----<<---- enter: A0), A0, \n (std.debug-print ---->>---- exit: A0).", "rule_loc": [ "File", { @@ -261656,13 +253264,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -261687,13 +253293,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -261727,8 +253331,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", + "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", "rule_loc": [ "File", { @@ -261804,13 +253407,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", + "rule_text": "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 108, "column": 0, "character": 3601 @@ -261825,8 +253426,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -261921,13 +253521,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -262019,13 +253617,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -262040,13 +253636,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -262061,13 +253655,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -262082,13 +253674,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -262160,13 +253750,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -262257,13 +253845,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -262297,13 +253883,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -262337,13 +253921,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -262358,13 +253940,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -262664,13 +254244,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -262689,8 +254267,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -262715,13 +254292,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -262736,8 +254311,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -262769,8 +254343,7 @@ "Inference", { "current_goal_id": 1724, - "current_goal_text": - "std.debug-print ----<<---- enter: \n (std.take 0 \n [c0, app [global (const «Builders_18.HB_unnamed_factory_20»), c0, c1], \n app [global (const «Builders_18.HB_unnamed_factory_22»), c0, c1]] \n X175^1)", + "current_goal_text": "std.debug-print ----<<---- enter: \n (std.take 0 \n [c0, app [global (const «Builders_18.HB_unnamed_factory_20»), c0, c1], \n app [global (const «Builders_18.HB_unnamed_factory_22»), c0, c1]] \n X175^1)", "current_goal_predicate": "std.debug-print", "failed_attempts": [], "successful_attempts": [ @@ -262779,8 +254352,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.debug-print A0 A1) :- (!), (coq.say A0 A1).", + "rule_text": "(std.debug-print A0 A1) :- (!), (coq.say A0 A1).", "rule_loc": [ "File", { @@ -262803,8 +254375,7 @@ "siblings": [ { "goal_text": "!", "goal_id": 1735 }, { - "goal_text": - "coq.say ----<<---- enter: \n (std.take 0 \n [c0, app [global (const «Builders_18.HB_unnamed_factory_20»), c0, c1], \n app [global (const «Builders_18.HB_unnamed_factory_22»), c0, c1]] \n X175^1)", + "goal_text": "coq.say ----<<---- enter: \n (std.take 0 \n [c0, app [global (const «Builders_18.HB_unnamed_factory_20»), c0, c1], \n app [global (const «Builders_18.HB_unnamed_factory_22»), c0, c1]] \n X175^1)", "goal_id": 1736 } ], @@ -262817,8 +254388,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.debug-print A0 A1) :- (!), (coq.say A0 A1).", + "rule_text": "(std.debug-print A0 A1) :- (!), (coq.say A0 A1).", "rule_loc": [ "File", { @@ -262837,8 +254407,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.spy A0) :- (trace.counter run A1), \n (if (not (A1 = 0)) (std.debug-print run= A1) true), \n (std.debug-print ----<<---- enter: A0), A0, \n (std.debug-print ---->>---- exit: A0).", + "rule_text": "(std.spy A0) :- (trace.counter run A1), \n (if (not (A1 = 0)) (std.debug-print run= A1) true), \n (std.debug-print ----<<---- enter: A0), A0, \n (std.debug-print ---->>---- exit: A0).", "rule_loc": [ "File", { @@ -262857,13 +254426,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -262888,13 +254455,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -262928,8 +254493,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", + "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", "rule_loc": [ "File", { @@ -263005,13 +254569,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", + "rule_text": "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 108, "column": 0, "character": 3601 @@ -263026,8 +254588,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -263122,13 +254683,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -263220,13 +254779,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -263241,13 +254798,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -263262,13 +254817,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -263283,13 +254836,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -263361,13 +254912,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -263458,13 +255007,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -263498,13 +255045,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -263538,13 +255083,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -263559,13 +255102,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -263865,13 +255406,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -263890,8 +255429,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -263916,13 +255454,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -263937,8 +255473,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -263973,8 +255508,7 @@ "cut_victims": [ { "cut_branch_for_goal": { - "goal_text": - "std.debug-print ----<<---- enter: \n (std.take 0 \n [c0, app [global (const «Builders_18.HB_unnamed_factory_20»), c0, c1], \n app [global (const «Builders_18.HB_unnamed_factory_22»), c0, c1]] \n X175^1)", + "goal_text": "std.debug-print ----<<---- enter: \n (std.take 0 \n [c0, app [global (const «Builders_18.HB_unnamed_factory_20»), c0, c1], \n app [global (const «Builders_18.HB_unnamed_factory_22»), c0, c1]] \n X175^1)", "goal_id": 1724 }, "cut_branch": { @@ -264002,8 +255536,7 @@ "Inference", { "current_goal_id": 1736, - "current_goal_text": - "coq.say ----<<---- enter: \n (std.take 0 \n [c0, app [global (const «Builders_18.HB_unnamed_factory_20»), c0, c1], \n app [global (const «Builders_18.HB_unnamed_factory_22»), c0, c1]] \n X175^1)", + "current_goal_text": "coq.say ----<<---- enter: \n (std.take 0 \n [c0, app [global (const «Builders_18.HB_unnamed_factory_20»), c0, c1], \n app [global (const «Builders_18.HB_unnamed_factory_22»), c0, c1]] \n X175^1)", "current_goal_predicate": "coq.say", "failed_attempts": [], "successful_attempts": [ @@ -264027,8 +255560,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.debug-print A0 A1) :- (!), (coq.say A0 A1).", + "rule_text": "(std.debug-print A0 A1) :- (!), (coq.say A0 A1).", "rule_loc": [ "File", { @@ -264047,8 +255579,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.spy A0) :- (trace.counter run A1), \n (if (not (A1 = 0)) (std.debug-print run= A1) true), \n (std.debug-print ----<<---- enter: A0), A0, \n (std.debug-print ---->>---- exit: A0).", + "rule_text": "(std.spy A0) :- (trace.counter run A1), \n (if (not (A1 = 0)) (std.debug-print run= A1) true), \n (std.debug-print ----<<---- enter: A0), A0, \n (std.debug-print ---->>---- exit: A0).", "rule_loc": [ "File", { @@ -264067,13 +255598,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -264098,13 +255627,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -264138,8 +255665,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", + "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", "rule_loc": [ "File", { @@ -264215,13 +255741,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", + "rule_text": "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 108, "column": 0, "character": 3601 @@ -264236,8 +255760,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -264332,13 +255855,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -264430,13 +255951,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -264451,13 +255970,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -264472,13 +255989,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -264493,13 +256008,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -264571,13 +256084,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -264668,13 +256179,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -264708,13 +256217,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -264748,13 +256255,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -264769,13 +256274,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -265075,13 +256578,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -265100,8 +256601,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -265126,13 +256626,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -265147,8 +256645,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -265180,8 +256677,7 @@ "Inference", { "current_goal_id": 1725, - "current_goal_text": - "std.take 0 \n [c0, app [global (const «Builders_18.HB_unnamed_factory_20»), c0, c1], \n app [global (const «Builders_18.HB_unnamed_factory_22»), c0, c1]] X175^1", + "current_goal_text": "std.take 0 \n [c0, app [global (const «Builders_18.HB_unnamed_factory_20»), c0, c1], \n app [global (const «Builders_18.HB_unnamed_factory_22»), c0, c1]] X175^1", "current_goal_predicate": "std.take", "failed_attempts": [], "successful_attempts": [ @@ -265233,8 +256729,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.spy A0) :- (trace.counter run A1), \n (if (not (A1 = 0)) (std.debug-print run= A1) true), \n (std.debug-print ----<<---- enter: A0), A0, \n (std.debug-print ---->>---- exit: A0).", + "rule_text": "(std.spy A0) :- (trace.counter run A1), \n (if (not (A1 = 0)) (std.debug-print run= A1) true), \n (std.debug-print ----<<---- enter: A0), A0, \n (std.debug-print ---->>---- exit: A0).", "rule_loc": [ "File", { @@ -265253,13 +256748,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -265284,13 +256777,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -265324,8 +256815,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", + "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", "rule_loc": [ "File", { @@ -265401,13 +256891,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", + "rule_text": "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 108, "column": 0, "character": 3601 @@ -265422,8 +256910,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -265518,13 +257005,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -265616,13 +257101,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -265637,13 +257120,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -265658,13 +257139,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -265679,13 +257158,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -265757,13 +257234,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -265854,13 +257329,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -265894,13 +257367,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -265934,13 +257405,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -265955,13 +257424,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -266261,13 +257728,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -266286,8 +257751,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -266312,13 +257776,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -266333,8 +257795,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -266369,13 +257830,11 @@ "cut_victims": [ { "cut_branch_for_goal": { - "goal_text": - "std.take 0 \n [c0, app [global (const «Builders_18.HB_unnamed_factory_20»), c0, c1], \n app [global (const «Builders_18.HB_unnamed_factory_22»), c0, c1]] X175^1", + "goal_text": "std.take 0 \n [c0, app [global (const «Builders_18.HB_unnamed_factory_20»), c0, c1], \n app [global (const «Builders_18.HB_unnamed_factory_22»), c0, c1]] X175^1", "goal_id": 1725 }, "cut_branch": { - "rule_text": - "(std.take A0 [A1 | A2] [A1 | A3]) :- (!), (A4 is A0 - 1), \n (std.take A4 A2 A3).", + "rule_text": "(std.take A0 [A1 | A2] [A1 | A3]) :- (!), (A4 is A0 - 1), \n (std.take A4 A2 A3).", "rule_loc": [ "File", { @@ -266389,13 +257848,11 @@ }, { "cut_branch_for_goal": { - "goal_text": - "std.take 0 \n [c0, app [global (const «Builders_18.HB_unnamed_factory_20»), c0, c1], \n app [global (const «Builders_18.HB_unnamed_factory_22»), c0, c1]] X175^1", + "goal_text": "std.take 0 \n [c0, app [global (const «Builders_18.HB_unnamed_factory_20»), c0, c1], \n app [global (const «Builders_18.HB_unnamed_factory_22»), c0, c1]] X175^1", "goal_id": 1725 }, "cut_branch": { - "rule_text": - "(std.take _ _ _) :- (std.fatal-error take run out of list items).", + "rule_text": "(std.take _ _ _) :- (std.fatal-error take run out of list items).", "rule_loc": [ "File", { @@ -266419,8 +257876,7 @@ "Inference", { "current_goal_id": 1726, - "current_goal_text": - "std.debug-print ---->>---- exit: \n (std.take 0 \n [c0, app [global (const «Builders_18.HB_unnamed_factory_20»), c0, c1], \n app [global (const «Builders_18.HB_unnamed_factory_22»), c0, c1]] [])", + "current_goal_text": "std.debug-print ---->>---- exit: \n (std.take 0 \n [c0, app [global (const «Builders_18.HB_unnamed_factory_20»), c0, c1], \n app [global (const «Builders_18.HB_unnamed_factory_22»), c0, c1]] [])", "current_goal_predicate": "std.debug-print", "failed_attempts": [], "successful_attempts": [ @@ -266429,8 +257885,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.debug-print A0 A1) :- (!), (coq.say A0 A1).", + "rule_text": "(std.debug-print A0 A1) :- (!), (coq.say A0 A1).", "rule_loc": [ "File", { @@ -266453,8 +257908,7 @@ "siblings": [ { "goal_text": "!", "goal_id": 1738 }, { - "goal_text": - "coq.say ---->>---- exit: \n (std.take 0 \n [c0, app [global (const «Builders_18.HB_unnamed_factory_20»), c0, c1], \n app [global (const «Builders_18.HB_unnamed_factory_22»), c0, c1]] [])", + "goal_text": "coq.say ---->>---- exit: \n (std.take 0 \n [c0, app [global (const «Builders_18.HB_unnamed_factory_20»), c0, c1], \n app [global (const «Builders_18.HB_unnamed_factory_22»), c0, c1]] [])", "goal_id": 1739 } ], @@ -266467,8 +257921,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.debug-print A0 A1) :- (!), (coq.say A0 A1).", + "rule_text": "(std.debug-print A0 A1) :- (!), (coq.say A0 A1).", "rule_loc": [ "File", { @@ -266487,8 +257940,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.spy A0) :- (trace.counter run A1), \n (if (not (A1 = 0)) (std.debug-print run= A1) true), \n (std.debug-print ----<<---- enter: A0), A0, \n (std.debug-print ---->>---- exit: A0).", + "rule_text": "(std.spy A0) :- (trace.counter run A1), \n (if (not (A1 = 0)) (std.debug-print run= A1) true), \n (std.debug-print ----<<---- enter: A0), A0, \n (std.debug-print ---->>---- exit: A0).", "rule_loc": [ "File", { @@ -266507,13 +257959,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -266538,13 +257988,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -266578,8 +258026,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", + "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", "rule_loc": [ "File", { @@ -266655,13 +258102,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", + "rule_text": "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 108, "column": 0, "character": 3601 @@ -266676,8 +258121,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -266772,13 +258216,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -266870,13 +258312,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -266891,13 +258331,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -266912,13 +258350,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -266933,13 +258369,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -267011,13 +258445,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -267108,13 +258540,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -267148,13 +258578,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -267188,13 +258616,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -267209,13 +258635,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -267515,13 +258939,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -267540,8 +258962,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -267566,13 +258987,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -267587,8 +259006,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -267623,8 +259041,7 @@ "cut_victims": [ { "cut_branch_for_goal": { - "goal_text": - "std.debug-print ---->>---- exit: \n (std.take 0 \n [c0, app [global (const «Builders_18.HB_unnamed_factory_20»), c0, c1], \n app [global (const «Builders_18.HB_unnamed_factory_22»), c0, c1]] \n X175^1)", + "goal_text": "std.debug-print ---->>---- exit: \n (std.take 0 \n [c0, app [global (const «Builders_18.HB_unnamed_factory_20»), c0, c1], \n app [global (const «Builders_18.HB_unnamed_factory_22»), c0, c1]] \n X175^1)", "goal_id": 1726 }, "cut_branch": { @@ -267652,8 +259069,7 @@ "Inference", { "current_goal_id": 1739, - "current_goal_text": - "coq.say ---->>---- exit: \n (std.take 0 \n [c0, app [global (const «Builders_18.HB_unnamed_factory_20»), c0, c1], \n app [global (const «Builders_18.HB_unnamed_factory_22»), c0, c1]] [])", + "current_goal_text": "coq.say ---->>---- exit: \n (std.take 0 \n [c0, app [global (const «Builders_18.HB_unnamed_factory_20»), c0, c1], \n app [global (const «Builders_18.HB_unnamed_factory_22»), c0, c1]] [])", "current_goal_predicate": "coq.say", "failed_attempts": [], "successful_attempts": [ @@ -267677,8 +259093,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.debug-print A0 A1) :- (!), (coq.say A0 A1).", + "rule_text": "(std.debug-print A0 A1) :- (!), (coq.say A0 A1).", "rule_loc": [ "File", { @@ -267697,8 +259112,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.spy A0) :- (trace.counter run A1), \n (if (not (A1 = 0)) (std.debug-print run= A1) true), \n (std.debug-print ----<<---- enter: A0), A0, \n (std.debug-print ---->>---- exit: A0).", + "rule_text": "(std.spy A0) :- (trace.counter run A1), \n (if (not (A1 = 0)) (std.debug-print run= A1) true), \n (std.debug-print ----<<---- enter: A0), A0, \n (std.debug-print ---->>---- exit: A0).", "rule_loc": [ "File", { @@ -267717,13 +259131,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -267748,13 +259160,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -267788,8 +259198,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", + "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", "rule_loc": [ "File", { @@ -267865,13 +259274,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", + "rule_text": "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 108, "column": 0, "character": 3601 @@ -267886,8 +259293,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -267982,13 +259388,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -268080,13 +259484,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -268101,13 +259503,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -268122,13 +259522,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -268143,13 +259541,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -268221,13 +259617,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -268318,13 +259712,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -268358,13 +259750,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -268398,13 +259788,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -268419,13 +259807,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -268725,13 +260111,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -268750,8 +260134,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -268776,13 +260159,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -268797,8 +260178,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -268837,8 +260217,7 @@ "goal_id": 1613 }, "cut_branch": { - "rule_text": - "(std.spy A0) :- (std.debug-print ---->>---- fail: A0), fail.", + "rule_text": "(std.spy A0) :- (std.debug-print ---->>---- fail: A0), fail.", "rule_loc": [ "File", { @@ -268856,8 +260235,7 @@ "goal_id": 1611 }, "cut_branch": { - "rule_text": - "(factory-nparams (indt «SelfA.axioms_») 0) :- .", + "rule_text": "(factory-nparams (indt «SelfA.axioms_») 0) :- .", "rule_loc": [ "File", { @@ -268875,8 +260253,7 @@ "goal_id": 1611 }, "cut_branch": { - "rule_text": - "(factory-nparams (indt «IsSelfA'.axioms_») 0) :- .", + "rule_text": "(factory-nparams (indt «IsSelfA'.axioms_») 0) :- .", "rule_loc": [ "File", { @@ -268890,8 +260267,7 @@ }, { "cut_branch_for_goal": { - "goal_text": - "extract-conclusion-params c0 \n (prod `fresh_name_19` (app [global (const «IsSelfA'.phant_axioms»), c0]) \n c1 \\\n app\n [global (indt «IsSelfA.axioms_»), c0, \n app [global (const «Builders_18.HB_unnamed_factory_20»), c0, c1], \n app [global (const «Builders_18.HB_unnamed_factory_22»), c0, c1]]) \n X175^1 ;\n std.fatal-error-w-data\n The conclusion of a builder is a mixin whose parameters depend on other mixins \n (extract-conclusion-params c0 \n (prod `fresh_name_19` \n (app [global (const «IsSelfA'.phant_axioms»), c0]) c1 \\\n app\n [global (indt «IsSelfA.axioms_»), c0, \n app [global (const «Builders_18.HB_unnamed_factory_20»), c0, c1], \n app [global (const «Builders_18.HB_unnamed_factory_22»), c0, c1]]) \n X175^1)", + "goal_text": "extract-conclusion-params c0 \n (prod `fresh_name_19` (app [global (const «IsSelfA'.phant_axioms»), c0]) \n c1 \\\n app\n [global (indt «IsSelfA.axioms_»), c0, \n app [global (const «Builders_18.HB_unnamed_factory_20»), c0, c1], \n app [global (const «Builders_18.HB_unnamed_factory_22»), c0, c1]]) \n X175^1 ;\n std.fatal-error-w-data\n The conclusion of a builder is a mixin whose parameters depend on other mixins \n (extract-conclusion-params c0 \n (prod `fresh_name_19` \n (app [global (const «IsSelfA'.phant_axioms»), c0]) c1 \\\n app\n [global (indt «IsSelfA.axioms_»), c0, \n app [global (const «Builders_18.HB_unnamed_factory_20»), c0, c1], \n app [global (const «Builders_18.HB_unnamed_factory_22»), c0, c1]]) \n X175^1)", "goal_id": 1602 }, "cut_branch": { @@ -269034,13 +260410,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", + "rule_text": "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 108, "column": 0, "character": 3601 @@ -269055,8 +260429,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -269151,13 +260524,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -269249,13 +260620,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -269270,13 +260639,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -269291,13 +260658,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -269312,13 +260677,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -269390,13 +260753,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -269487,13 +260848,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -269527,13 +260886,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -269567,13 +260924,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -269588,13 +260943,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -269894,13 +261247,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -269919,8 +261270,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -269945,13 +261295,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -269966,8 +261314,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -269999,8 +261346,7 @@ "Inference", { "current_goal_id": 1578, - "current_goal_text": - "std.map2\n [global (const «Builders_18.HB_unnamed_factory_22»), \n global (const «Builders_18.HB_unnamed_factory_20»)] \n [indt «HasB.axioms_», indt «HasA.axioms_»] (factory-provides.one [] c0) \n X174^1", + "current_goal_text": "std.map2\n [global (const «Builders_18.HB_unnamed_factory_22»), \n global (const «Builders_18.HB_unnamed_factory_20»)] \n [indt «HasB.axioms_», indt «HasA.axioms_»] (factory-provides.one [] c0) \n X174^1", "current_goal_predicate": "std.map2", "failed_attempts": [], "successful_attempts": [ @@ -270009,8 +261355,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -270039,13 +261384,11 @@ }, "siblings": [ { - "goal_text": - "factory-provides.one [] c0 \n (global (const «Builders_18.HB_unnamed_factory_22»)) \n (indt «HasB.axioms_») X228^1", + "goal_text": "factory-provides.one [] c0 \n (global (const «Builders_18.HB_unnamed_factory_22»)) \n (indt «HasB.axioms_») X228^1", "goal_id": 1740 }, { - "goal_text": - "std.map2 [global (const «Builders_18.HB_unnamed_factory_20»)] \n [indt «HasA.axioms_»] (factory-provides.one [] c0) X229^1", + "goal_text": "std.map2 [global (const «Builders_18.HB_unnamed_factory_20»)] \n [indt «HasA.axioms_»] (factory-provides.one [] c0) X229^1", "goal_id": 1741 } ], @@ -270058,8 +261401,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -270078,8 +261420,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -270174,13 +261515,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -270272,13 +261611,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -270293,13 +261630,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -270314,13 +261649,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -270335,13 +261668,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -270413,13 +261744,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -270510,13 +261839,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -270550,13 +261877,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -270590,13 +261915,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -270611,13 +261934,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -270917,13 +262238,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -270942,8 +262261,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -270968,13 +262286,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -270989,8 +262305,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -271022,8 +262337,7 @@ "Inference", { "current_goal_id": 1740, - "current_goal_text": - "factory-provides.one [] c0 \n (global (const «Builders_18.HB_unnamed_factory_22»)) \n (indt «HasB.axioms_») X228^1", + "current_goal_text": "factory-provides.one [] c0 \n (global (const «Builders_18.HB_unnamed_factory_22»)) \n (indt «HasB.axioms_») X228^1", "current_goal_predicate": "factory-provides.one", "failed_attempts": [], "successful_attempts": [ @@ -271032,13 +262346,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", + "rule_text": "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 108, "column": 0, "character": 3601 @@ -271062,8 +262374,7 @@ }, "siblings": [ { - "goal_text": - "std.do!\n [std.assert-ok!\n (coq.typecheck (global (const «Builders_18.HB_unnamed_factory_22»)) \n X231^1) Builder illtyped, \n (coq.subst-prod [] X231^1 X232^1 , coq.subst-prod [c0] X232^1 X233^1), \n std.assert! (extract-conclusion-params c0 X233^1 X230^1) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]", + "goal_text": "std.do!\n [std.assert-ok!\n (coq.typecheck (global (const «Builders_18.HB_unnamed_factory_22»)) \n X231^1) Builder illtyped, \n (coq.subst-prod [] X231^1 X232^1 , coq.subst-prod [c0] X232^1 X233^1), \n std.assert! (extract-conclusion-params c0 X233^1 X230^1) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]", "goal_id": 1742 } ], @@ -271076,13 +262387,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", + "rule_text": "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 108, "column": 0, "character": 3601 @@ -271097,8 +262406,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -271117,8 +262425,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -271213,13 +262520,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -271311,13 +262616,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -271332,13 +262635,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -271353,13 +262654,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -271374,13 +262673,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -271452,13 +262749,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -271549,13 +262844,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -271589,13 +262882,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -271629,13 +262920,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -271650,13 +262939,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -271956,13 +263243,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -271981,8 +263266,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -272007,13 +263291,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -272028,8 +263310,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -272061,8 +263342,7 @@ "Inference", { "current_goal_id": 1742, - "current_goal_text": - "std.do!\n [std.assert-ok!\n (coq.typecheck (global (const «Builders_18.HB_unnamed_factory_22»)) \n X231^1) Builder illtyped, \n (coq.subst-prod [] X231^1 X232^1 , coq.subst-prod [c0] X232^1 X233^1), \n std.assert! (extract-conclusion-params c0 X233^1 X230^1) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]", + "current_goal_text": "std.do!\n [std.assert-ok!\n (coq.typecheck (global (const «Builders_18.HB_unnamed_factory_22»)) \n X231^1) Builder illtyped, \n (coq.subst-prod [] X231^1 X232^1 , coq.subst-prod [c0] X232^1 X233^1), \n std.assert! (extract-conclusion-params c0 X233^1 X230^1) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]", "current_goal_predicate": "std.do!", "failed_attempts": [], "successful_attempts": [ @@ -272071,8 +263351,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", "rule_loc": [ "File", { @@ -272097,14 +263376,12 @@ }, "siblings": [ { - "goal_text": - "std.assert-ok!\n (coq.typecheck (global (const «Builders_18.HB_unnamed_factory_22»)) X231^1) \n Builder illtyped", + "goal_text": "std.assert-ok!\n (coq.typecheck (global (const «Builders_18.HB_unnamed_factory_22»)) X231^1) \n Builder illtyped", "goal_id": 1743 }, { "goal_text": "!", "goal_id": 1744 }, { - "goal_text": - "std.do!\n [(coq.subst-prod [] X231^1 X232^1 , coq.subst-prod [c0] X232^1 X233^1), \n std.assert! (extract-conclusion-params c0 X233^1 X230^1) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]", + "goal_text": "std.do!\n [(coq.subst-prod [] X231^1 X232^1 , coq.subst-prod [c0] X232^1 X233^1), \n std.assert! (extract-conclusion-params c0 X233^1 X230^1) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]", "goal_id": 1745 } ], @@ -272136,13 +263413,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", + "rule_text": "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 108, "column": 0, "character": 3601 @@ -272157,8 +263432,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -272177,8 +263451,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -272273,13 +263546,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -272371,13 +263642,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -272392,13 +263661,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -272413,13 +263680,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -272434,13 +263699,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -272512,13 +263775,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -272609,13 +263870,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -272649,13 +263908,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -272689,13 +263946,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -272710,13 +263965,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -273016,13 +264269,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -273041,8 +264292,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -273067,13 +264317,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -273088,8 +264336,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -273121,8 +264368,7 @@ "Inference", { "current_goal_id": 1743, - "current_goal_text": - "std.assert-ok!\n (coq.typecheck (global (const «Builders_18.HB_unnamed_factory_22»)) X231^1) \n Builder illtyped", + "current_goal_text": "std.assert-ok!\n (coq.typecheck (global (const «Builders_18.HB_unnamed_factory_22»)) X231^1) \n Builder illtyped", "current_goal_predicate": "std.assert-ok!", "failed_attempts": [], "successful_attempts": [ @@ -273131,8 +264377,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert-ok! A0 A1) :- (A0 A2), (!), \n (A2 = ok ; A2 = error A3 , std.fatal-error-w-data A1 A3), (!).", + "rule_text": "(std.assert-ok! A0 A1) :- (A0 A2), (!), \n (A2 = ok ; A2 = error A3 , std.fatal-error-w-data A1 A3), (!).", "rule_loc": [ "File", { @@ -273154,14 +264399,12 @@ }, "siblings": [ { - "goal_text": - "coq.typecheck (global (const «Builders_18.HB_unnamed_factory_22»)) X231^1 \n X234^1", + "goal_text": "coq.typecheck (global (const «Builders_18.HB_unnamed_factory_22»)) X231^1 \n X234^1", "goal_id": 1746 }, { "goal_text": "!", "goal_id": 1747 }, { - "goal_text": - "X234^1 = ok ;\n X234^1 = error X235^1 , std.fatal-error-w-data Builder illtyped X235^1", + "goal_text": "X234^1 = ok ;\n X234^1 = error X235^1 , std.fatal-error-w-data Builder illtyped X235^1", "goal_id": 1748 }, { "goal_text": "!", "goal_id": 1749 } @@ -273175,8 +264418,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert-ok! A0 A1) :- (A0 A2), (!), \n (A2 = ok ; A2 = error A3 , std.fatal-error-w-data A1 A3), (!).", + "rule_text": "(std.assert-ok! A0 A1) :- (A0 A2), (!), \n (A2 = ok ; A2 = error A3 , std.fatal-error-w-data A1 A3), (!).", "rule_loc": [ "File", { @@ -273214,13 +264456,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", + "rule_text": "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 108, "column": 0, "character": 3601 @@ -273235,8 +264475,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -273255,8 +264494,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -273351,13 +264589,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -273449,13 +264685,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -273470,13 +264704,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -273491,13 +264723,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -273512,13 +264742,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -273590,13 +264818,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -273687,13 +264913,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -273727,13 +264951,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -273767,13 +264989,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -273788,13 +265008,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -274094,13 +265312,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -274119,8 +265335,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -274145,13 +265360,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -274166,8 +265379,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -274199,8 +265411,7 @@ "Inference", { "current_goal_id": 1746, - "current_goal_text": - "coq.typecheck (global (const «Builders_18.HB_unnamed_factory_22»)) X231^1 \n X234^1", + "current_goal_text": "coq.typecheck (global (const «Builders_18.HB_unnamed_factory_22»)) X231^1 \n X234^1", "current_goal_predicate": "coq.typecheck", "failed_attempts": [], "successful_attempts": [ @@ -274211,8 +265422,7 @@ }, "siblings": [ { - "goal_text": - "X231^1 =\n prod `T` (sort (typ «interleave_context.396»)) c1 \\\n prod `fresh_name_19` (app [global (const «IsSelfA'.phant_axioms»), c1]) \n c2 \\\n app\n [global (indt «HasB.axioms_»), \n app\n [global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c1, c2], c1]", + "goal_text": "X231^1 =\n prod `T` (sort (typ «interleave_context.396»)) c1 \\\n prod `fresh_name_19` (app [global (const «IsSelfA'.phant_axioms»), c1]) \n c2 \\\n app\n [global (indt «HasB.axioms_»), \n app\n [global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c1, c2], c1]", "goal_id": 1750 }, { "goal_text": "X234^1 = ok", "goal_id": 1751 } @@ -274231,8 +265441,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert-ok! A0 A1) :- (A0 A2), (!), \n (A2 = ok ; A2 = error A3 , std.fatal-error-w-data A1 A3), (!).", + "rule_text": "(std.assert-ok! A0 A1) :- (A0 A2), (!), \n (A2 = ok ; A2 = error A3 , std.fatal-error-w-data A1 A3), (!).", "rule_loc": [ "File", { @@ -274270,13 +265479,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", + "rule_text": "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 108, "column": 0, "character": 3601 @@ -274291,8 +265498,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -274311,8 +265517,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -274407,13 +265612,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -274505,13 +265708,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -274526,13 +265727,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -274547,13 +265746,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -274568,13 +265765,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -274646,13 +265841,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -274743,13 +265936,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -274783,13 +265974,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -274823,13 +266012,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -274844,13 +266031,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -275150,13 +266335,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -275175,8 +266358,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -275201,13 +266383,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -275222,8 +266402,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -275255,8 +266434,7 @@ "Inference", { "current_goal_id": 1750, - "current_goal_text": - "X231^1 =\n prod `T` (sort (typ «interleave_context.396»)) c1 \\\n prod `fresh_name_19` (app [global (const «IsSelfA'.phant_axioms»), c1]) \n c2 \\\n app\n [global (indt «HasB.axioms_»), \n app\n [global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c1, c2], c1]", + "current_goal_text": "X231^1 =\n prod `T` (sort (typ «interleave_context.396»)) c1 \\\n prod `fresh_name_19` (app [global (const «IsSelfA'.phant_axioms»), c1]) \n c2 \\\n app\n [global (indt «HasB.axioms_»), \n app\n [global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c1, c2], c1]", "current_goal_predicate": "=", "failed_attempts": [], "successful_attempts": [ @@ -275290,8 +266468,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert-ok! A0 A1) :- (A0 A2), (!), \n (A2 = ok ; A2 = error A3 , std.fatal-error-w-data A1 A3), (!).", + "rule_text": "(std.assert-ok! A0 A1) :- (A0 A2), (!), \n (A2 = ok ; A2 = error A3 , std.fatal-error-w-data A1 A3), (!).", "rule_loc": [ "File", { @@ -275329,13 +266506,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", + "rule_text": "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 108, "column": 0, "character": 3601 @@ -275350,8 +266525,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -275370,8 +266544,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -275466,13 +266639,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -275564,13 +266735,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -275585,13 +266754,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -275606,13 +266773,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -275627,13 +266792,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -275705,13 +266868,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -275802,13 +266963,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -275842,13 +267001,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -275882,13 +267039,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -275903,13 +267058,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -276209,13 +267362,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -276234,8 +267385,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -276260,13 +267410,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -276281,8 +267429,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -276343,8 +267490,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert-ok! A0 A1) :- (A0 A2), (!), \n (A2 = ok ; A2 = error A3 , std.fatal-error-w-data A1 A3), (!).", + "rule_text": "(std.assert-ok! A0 A1) :- (A0 A2), (!), \n (A2 = ok ; A2 = error A3 , std.fatal-error-w-data A1 A3), (!).", "rule_loc": [ "File", { @@ -276382,13 +267528,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", + "rule_text": "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 108, "column": 0, "character": 3601 @@ -276403,8 +267547,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -276423,8 +267566,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -276519,13 +267661,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -276617,13 +267757,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -276638,13 +267776,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -276659,13 +267795,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -276680,13 +267814,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -276758,13 +267890,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -276855,13 +267985,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -276895,13 +268023,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -276935,13 +268061,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -276956,13 +268080,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -277262,13 +268384,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -277287,8 +268407,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -277313,13 +268432,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -277334,8 +268451,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -277370,13 +268486,11 @@ "cut_victims": [ { "cut_branch_for_goal": { - "goal_text": - "std.assert-ok!\n (coq.typecheck (global (const «Builders_18.HB_unnamed_factory_22»)) X231^1) \n Builder illtyped", + "goal_text": "std.assert-ok!\n (coq.typecheck (global (const «Builders_18.HB_unnamed_factory_22»)) X231^1) \n Builder illtyped", "goal_id": 1743 }, "cut_branch": { - "rule_text": - "(std.assert-ok! _ A0) :- (std.fatal-error-w-data A0 no diagnostic returned).", + "rule_text": "(std.assert-ok! _ A0) :- (std.fatal-error-w-data A0 no diagnostic returned).", "rule_loc": [ "File", { @@ -277400,8 +268514,7 @@ "Inference", { "current_goal_id": 1748, - "current_goal_text": - "ok = ok ; ok = error X235^1 , std.fatal-error-w-data Builder illtyped X235^1", + "current_goal_text": "ok = ok ; ok = error X235^1 , std.fatal-error-w-data Builder illtyped X235^1", "current_goal_predicate": ";", "failed_attempts": [], "successful_attempts": [ @@ -277453,8 +268566,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert-ok! A0 A1) :- (A0 A2), (!), \n (A2 = ok ; A2 = error A3 , std.fatal-error-w-data A1 A3), (!).", + "rule_text": "(std.assert-ok! A0 A1) :- (A0 A2), (!), \n (A2 = ok ; A2 = error A3 , std.fatal-error-w-data A1 A3), (!).", "rule_loc": [ "File", { @@ -277492,13 +268604,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", + "rule_text": "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 108, "column": 0, "character": 3601 @@ -277513,8 +268623,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -277533,8 +268642,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -277629,13 +268737,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -277727,13 +268833,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -277748,13 +268852,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -277769,13 +268871,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -277790,13 +268890,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -277868,13 +268966,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -277965,13 +269061,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -278005,13 +269099,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -278045,13 +269137,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -278066,13 +269156,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -278372,13 +269460,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -278397,8 +269483,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -278423,13 +269508,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -278444,8 +269527,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -278520,8 +269602,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert-ok! A0 A1) :- (A0 A2), (!), \n (A2 = ok ; A2 = error A3 , std.fatal-error-w-data A1 A3), (!).", + "rule_text": "(std.assert-ok! A0 A1) :- (A0 A2), (!), \n (A2 = ok ; A2 = error A3 , std.fatal-error-w-data A1 A3), (!).", "rule_loc": [ "File", { @@ -278559,13 +269640,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", + "rule_text": "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 108, "column": 0, "character": 3601 @@ -278580,8 +269659,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -278600,8 +269678,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -278696,13 +269773,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -278794,13 +269869,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -278815,13 +269888,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -278836,13 +269907,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -278857,13 +269926,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -278935,13 +270002,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -279032,13 +270097,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -279072,13 +270135,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -279112,13 +270173,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -279133,13 +270192,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -279439,13 +270496,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -279464,8 +270519,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -279490,13 +270544,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -279511,8 +270563,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -279547,8 +270598,7 @@ "cut_victims": [ { "cut_branch_for_goal": { - "goal_text": - "X234^1 = ok ;\n X234^1 = error X235^1 , std.fatal-error-w-data Builder illtyped X235^1", + "goal_text": "X234^1 = ok ;\n X234^1 = error X235^1 , std.fatal-error-w-data Builder illtyped X235^1", "goal_id": 1748 }, "cut_branch": { @@ -279582,8 +270632,7 @@ "Inference", { "current_goal_id": 1745, - "current_goal_text": - "std.do!\n [(coq.subst-prod [] \n (prod `T` (sort (typ «interleave_context.396»)) c1 \\\n prod `fresh_name_19` \n (app [global (const «IsSelfA'.phant_axioms»), c1]) c2 \\\n app\n [global (indt «HasB.axioms_»), \n app\n [global\n (const\n «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c1, c2], c1]) X232^1 , coq.subst-prod [c0] X232^1 X233^1), \n std.assert! (extract-conclusion-params c0 X233^1 X230^1) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]", + "current_goal_text": "std.do!\n [(coq.subst-prod [] \n (prod `T` (sort (typ «interleave_context.396»)) c1 \\\n prod `fresh_name_19` \n (app [global (const «IsSelfA'.phant_axioms»), c1]) c2 \\\n app\n [global (indt «HasB.axioms_»), \n app\n [global\n (const\n «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c1, c2], c1]) X232^1 , coq.subst-prod [c0] X232^1 X233^1), \n std.assert! (extract-conclusion-params c0 X233^1 X230^1) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]", "current_goal_predicate": "std.do!", "failed_attempts": [], "successful_attempts": [ @@ -279592,8 +270641,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", "rule_loc": [ "File", { @@ -279618,14 +270666,12 @@ }, "siblings": [ { - "goal_text": - "coq.subst-prod [] \n (prod `T` (sort (typ «interleave_context.396»)) c1 \\\n prod `fresh_name_19` (app [global (const «IsSelfA'.phant_axioms»), c1]) \n c2 \\\n app\n [global (indt «HasB.axioms_»), \n app\n [global\n (const\n «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c1, c2], c1]) X232^1 , coq.subst-prod [c0] X232^1 X233^1", + "goal_text": "coq.subst-prod [] \n (prod `T` (sort (typ «interleave_context.396»)) c1 \\\n prod `fresh_name_19` (app [global (const «IsSelfA'.phant_axioms»), c1]) \n c2 \\\n app\n [global (indt «HasB.axioms_»), \n app\n [global\n (const\n «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c1, c2], c1]) X232^1 , coq.subst-prod [c0] X232^1 X233^1", "goal_id": 1753 }, { "goal_text": "!", "goal_id": 1754 }, { - "goal_text": - "std.do!\n [std.assert! (extract-conclusion-params c0 X233^1 X230^1) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]", + "goal_text": "std.do!\n [std.assert! (extract-conclusion-params c0 X233^1 X230^1) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]", "goal_id": 1755 } ], @@ -279676,13 +270722,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", + "rule_text": "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 108, "column": 0, "character": 3601 @@ -279697,8 +270741,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -279717,8 +270760,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -279813,13 +270855,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -279911,13 +270951,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -279932,13 +270970,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -279953,13 +270989,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -279974,13 +271008,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -280052,13 +271084,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -280149,13 +271179,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -280189,13 +271217,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -280229,13 +271255,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -280250,13 +271274,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -280556,13 +271578,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -280581,8 +271601,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -280607,13 +271626,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -280628,8 +271645,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -280661,8 +271677,7 @@ "Inference", { "current_goal_id": 1753, - "current_goal_text": - "coq.subst-prod [] \n (prod `T` (sort (typ «interleave_context.396»)) c1 \\\n prod `fresh_name_19` (app [global (const «IsSelfA'.phant_axioms»), c1]) \n c2 \\\n app\n [global (indt «HasB.axioms_»), \n app\n [global\n (const\n «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c1, c2], c1]) X232^1 , coq.subst-prod [c0] X232^1 X233^1", + "current_goal_text": "coq.subst-prod [] \n (prod `T` (sort (typ «interleave_context.396»)) c1 \\\n prod `fresh_name_19` (app [global (const «IsSelfA'.phant_axioms»), c1]) \n c2 \\\n app\n [global (indt «HasB.axioms_»), \n app\n [global\n (const\n «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c1, c2], c1]) X232^1 , coq.subst-prod [c0] X232^1 X233^1", "current_goal_predicate": ",", "failed_attempts": [], "successful_attempts": [ @@ -280673,8 +271688,7 @@ }, "siblings": [ { - "goal_text": - "coq.subst-prod [] \n (prod `T` (sort (typ «interleave_context.396»)) c1 \\\n prod `fresh_name_19` (app [global (const «IsSelfA'.phant_axioms»), c1]) \n c2 \\\n app\n [global (indt «HasB.axioms_»), \n app\n [global\n (const\n «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c1, c2], c1]) X232^1", + "goal_text": "coq.subst-prod [] \n (prod `T` (sort (typ «interleave_context.396»)) c1 \\\n prod `fresh_name_19` (app [global (const «IsSelfA'.phant_axioms»), c1]) \n c2 \\\n app\n [global (indt «HasB.axioms_»), \n app\n [global\n (const\n «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c1, c2], c1]) X232^1", "goal_id": 1756 }, { @@ -280734,13 +271748,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", + "rule_text": "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 108, "column": 0, "character": 3601 @@ -280755,8 +271767,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -280775,8 +271786,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -280871,13 +271881,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -280969,13 +271977,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -280990,13 +271996,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -281011,13 +272015,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -281032,13 +272034,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -281110,13 +272110,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -281207,13 +272205,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -281247,13 +272243,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -281287,13 +272281,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -281308,13 +272300,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -281614,13 +272604,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -281639,8 +272627,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -281665,13 +272652,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -281686,8 +272671,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -281719,8 +272703,7 @@ "Inference", { "current_goal_id": 1756, - "current_goal_text": - "coq.subst-prod [] \n (prod `T` (sort (typ «interleave_context.396»)) c1 \\\n prod `fresh_name_19` (app [global (const «IsSelfA'.phant_axioms»), c1]) \n c2 \\\n app\n [global (indt «HasB.axioms_»), \n app\n [global\n (const\n «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c1, c2], c1]) X232^1", + "current_goal_text": "coq.subst-prod [] \n (prod `T` (sort (typ «interleave_context.396»)) c1 \\\n prod `fresh_name_19` (app [global (const «IsSelfA'.phant_axioms»), c1]) \n c2 \\\n app\n [global (indt «HasB.axioms_»), \n app\n [global\n (const\n «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c1, c2], c1]) X232^1", "current_goal_predicate": "coq.subst-prod", "failed_attempts": [], "successful_attempts": [ @@ -281824,13 +272807,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", + "rule_text": "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 108, "column": 0, "character": 3601 @@ -281845,8 +272826,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -281865,8 +272845,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -281961,13 +272940,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -282059,13 +273036,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -282080,13 +273055,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -282101,13 +273074,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -282122,13 +273093,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -282200,13 +273169,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -282297,13 +273264,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -282337,13 +273302,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -282377,13 +273340,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -282398,13 +273359,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -282704,13 +273663,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -282729,8 +273686,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -282755,13 +273711,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -282776,8 +273730,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -282812,13 +273765,11 @@ "cut_victims": [ { "cut_branch_for_goal": { - "goal_text": - "coq.subst-prod [] \n (prod `T` (sort (typ «interleave_context.396»)) c1 \\\n prod `fresh_name_19` (app [global (const «IsSelfA'.phant_axioms»), c1]) \n c2 \\\n app\n [global (indt «HasB.axioms_»), \n app\n [global\n (const\n «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c1, c2], c1]) X232^1", + "goal_text": "coq.subst-prod [] \n (prod `T` (sort (typ «interleave_context.396»)) c1 \\\n prod `fresh_name_19` (app [global (const «IsSelfA'.phant_axioms»), c1]) \n c2 \\\n app\n [global (indt «HasB.axioms_»), \n app\n [global\n (const\n «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c1, c2], c1]) X232^1", "goal_id": 1756 }, "cut_branch": { - "rule_text": - "(coq.subst-prod A0 (let _ _ A1 A2) A3) :- (!), \n (coq.subst-prod A0 (A2 A1) A3).", + "rule_text": "(coq.subst-prod A0 (let _ _ A1 A2) A3) :- (!), \n (coq.subst-prod A0 (A2 A1) A3).", "rule_loc": [ "File", { @@ -282842,8 +273793,7 @@ "Inference", { "current_goal_id": 1757, - "current_goal_text": - "coq.subst-prod [c0] \n (prod `T` (sort (typ «interleave_context.396»)) c1 \\\n prod `fresh_name_19` (app [global (const «IsSelfA'.phant_axioms»), c1]) \n c2 \\\n app\n [global (indt «HasB.axioms_»), \n app\n [global\n (const\n «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c1, c2], c1]) X233^1", + "current_goal_text": "coq.subst-prod [c0] \n (prod `T` (sort (typ «interleave_context.396»)) c1 \\\n prod `fresh_name_19` (app [global (const «IsSelfA'.phant_axioms»), c1]) \n c2 \\\n app\n [global (indt «HasB.axioms_»), \n app\n [global\n (const\n «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c1, c2], c1]) X233^1", "current_goal_predicate": "coq.subst-prod", "failed_attempts": [], "successful_attempts": [ @@ -282852,8 +273802,7 @@ "rule": [ "UserRule", { - "rule_text": - "(coq.subst-prod [A0 | A1] (prod _ _ A2) A3) :- (!), \n (coq.subst-prod A1 (A2 A0) A3).", + "rule_text": "(coq.subst-prod [A0 | A1] (prod _ _ A2) A3) :- (!), \n (coq.subst-prod A1 (A2 A0) A3).", "rule_loc": [ "File", { @@ -282878,8 +273827,7 @@ "siblings": [ { "goal_text": "!", "goal_id": 1759 }, { - "goal_text": - "coq.subst-prod [] \n (prod `fresh_name_19` (app [global (const «IsSelfA'.phant_axioms»), c0]) \n c1 \\\n app\n [global (indt «HasB.axioms_»), \n app\n [global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1], c0]) X233^1", + "goal_text": "coq.subst-prod [] \n (prod `fresh_name_19` (app [global (const «IsSelfA'.phant_axioms»), c0]) \n c1 \\\n app\n [global (indt «HasB.axioms_»), \n app\n [global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1], c0]) X233^1", "goal_id": 1760 } ], @@ -282892,8 +273840,7 @@ "rule": [ "UserRule", { - "rule_text": - "(coq.subst-prod [A0 | A1] (prod _ _ A2) A3) :- (!), \n (coq.subst-prod A1 (A2 A0) A3).", + "rule_text": "(coq.subst-prod [A0 | A1] (prod _ _ A2) A3) :- (!), \n (coq.subst-prod A1 (A2 A0) A3).", "rule_loc": [ "File", { @@ -282955,13 +273902,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", + "rule_text": "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 108, "column": 0, "character": 3601 @@ -282976,8 +273921,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -282996,8 +273940,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -283092,13 +274035,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -283190,13 +274131,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -283211,13 +274150,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -283232,13 +274169,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -283253,13 +274188,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -283331,13 +274264,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -283428,13 +274359,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -283468,13 +274397,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -283508,13 +274435,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -283529,13 +274454,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -283835,13 +274758,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -283860,8 +274781,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -283886,13 +274806,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -283907,8 +274825,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -283947,8 +274864,7 @@ "goal_id": 1757 }, "cut_branch": { - "rule_text": - "(coq.subst-prod A0 (let _ _ A1 A2) A3) :- (!), \n (coq.subst-prod A0 (A2 A1) A3).", + "rule_text": "(coq.subst-prod A0 (let _ _ A1 A2) A3) :- (!), \n (coq.subst-prod A0 (A2 A1) A3).", "rule_loc": [ "File", { @@ -283966,8 +274882,7 @@ "goal_id": 1757 }, "cut_branch": { - "rule_text": - "(coq.subst-prod [_ | _] A0 _) :- (!), \n (std.fatal-error-w-data subst-prod: not a product A0).", + "rule_text": "(coq.subst-prod [_ | _] A0 _) :- (!), \n (std.fatal-error-w-data subst-prod: not a product A0).", "rule_loc": [ "File", { @@ -283991,8 +274906,7 @@ "Inference", { "current_goal_id": 1760, - "current_goal_text": - "coq.subst-prod [] \n (prod `fresh_name_19` (app [global (const «IsSelfA'.phant_axioms»), c0]) \n c1 \\\n app\n [global (indt «HasB.axioms_»), \n app\n [global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1], c0]) X233^1", + "current_goal_text": "coq.subst-prod [] \n (prod `fresh_name_19` (app [global (const «IsSelfA'.phant_axioms»), c0]) \n c1 \\\n app\n [global (indt «HasB.axioms_»), \n app\n [global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1], c0]) X233^1", "current_goal_predicate": "coq.subst-prod", "failed_attempts": [], "successful_attempts": [ @@ -284053,8 +274967,7 @@ "rule": [ "UserRule", { - "rule_text": - "(coq.subst-prod [A0 | A1] (prod _ _ A2) A3) :- (!), \n (coq.subst-prod A1 (A2 A0) A3).", + "rule_text": "(coq.subst-prod [A0 | A1] (prod _ _ A2) A3) :- (!), \n (coq.subst-prod A1 (A2 A0) A3).", "rule_loc": [ "File", { @@ -284116,13 +275029,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", + "rule_text": "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 108, "column": 0, "character": 3601 @@ -284137,8 +275048,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -284157,8 +275067,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -284253,13 +275162,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -284351,13 +275258,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -284372,13 +275277,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -284393,13 +275296,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -284414,13 +275315,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -284492,13 +275391,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -284589,13 +275486,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -284629,13 +275524,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -284669,13 +275562,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -284690,13 +275581,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -284996,13 +275885,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -285021,8 +275908,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -285047,13 +275933,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -285068,8 +275952,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -285104,13 +275987,11 @@ "cut_victims": [ { "cut_branch_for_goal": { - "goal_text": - "coq.subst-prod [] \n (prod `fresh_name_19` (app [global (const «IsSelfA'.phant_axioms»), c0]) \n c1 \\\n app\n [global (indt «HasB.axioms_»), \n app\n [global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1], c0]) X233^1", + "goal_text": "coq.subst-prod [] \n (prod `fresh_name_19` (app [global (const «IsSelfA'.phant_axioms»), c0]) \n c1 \\\n app\n [global (indt «HasB.axioms_»), \n app\n [global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1], c0]) X233^1", "goal_id": 1760 }, "cut_branch": { - "rule_text": - "(coq.subst-prod A0 (let _ _ A1 A2) A3) :- (!), \n (coq.subst-prod A0 (A2 A1) A3).", + "rule_text": "(coq.subst-prod A0 (let _ _ A1 A2) A3) :- (!), \n (coq.subst-prod A0 (A2 A1) A3).", "rule_loc": [ "File", { @@ -285140,8 +276021,7 @@ "Inference", { "current_goal_id": 1755, - "current_goal_text": - "std.do!\n [std.assert!\n (extract-conclusion-params c0 \n (prod `fresh_name_19` \n (app [global (const «IsSelfA'.phant_axioms»), c0]) c1 \\\n app\n [global (indt «HasB.axioms_»), \n app\n [global\n (const\n «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1], c0]) X230^1) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]", + "current_goal_text": "std.do!\n [std.assert!\n (extract-conclusion-params c0 \n (prod `fresh_name_19` \n (app [global (const «IsSelfA'.phant_axioms»), c0]) c1 \\\n app\n [global (indt «HasB.axioms_»), \n app\n [global\n (const\n «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1], c0]) X230^1) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]", "current_goal_predicate": "std.do!", "failed_attempts": [], "successful_attempts": [ @@ -285150,8 +276030,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", + "rule_text": "(std.do! [A0 | A1]) :- A0, (!), (std.do! A1).", "rule_loc": [ "File", { @@ -285173,8 +276052,7 @@ }, "siblings": [ { - "goal_text": - "std.assert!\n (extract-conclusion-params c0 \n (prod `fresh_name_19` \n (app [global (const «IsSelfA'.phant_axioms»), c0]) c1 \\\n app\n [global (indt «HasB.axioms_»), \n app\n [global\n (const\n «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1], c0]) X230^1) \n The conclusion of a builder is a mixin whose parameters depend on other mixins", + "goal_text": "std.assert!\n (extract-conclusion-params c0 \n (prod `fresh_name_19` \n (app [global (const «IsSelfA'.phant_axioms»), c0]) c1 \\\n app\n [global (indt «HasB.axioms_»), \n app\n [global\n (const\n «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1], c0]) X230^1) \n The conclusion of a builder is a mixin whose parameters depend on other mixins", "goal_id": 1762 }, { "goal_text": "!", "goal_id": 1763 }, @@ -285246,13 +276124,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", + "rule_text": "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 108, "column": 0, "character": 3601 @@ -285267,8 +276143,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -285287,8 +276162,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -285383,13 +276257,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -285481,13 +276353,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -285502,13 +276372,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -285523,13 +276391,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -285544,13 +276410,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -285622,13 +276486,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -285719,13 +276581,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -285759,13 +276619,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -285799,13 +276657,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -285820,13 +276676,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -286126,13 +276980,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -286151,8 +277003,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -286177,13 +277028,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -286198,8 +277047,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -286231,8 +277079,7 @@ "Inference", { "current_goal_id": 1762, - "current_goal_text": - "std.assert!\n (extract-conclusion-params c0 \n (prod `fresh_name_19` \n (app [global (const «IsSelfA'.phant_axioms»), c0]) c1 \\\n app\n [global (indt «HasB.axioms_»), \n app\n [global\n (const\n «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1], c0]) X230^1) \n The conclusion of a builder is a mixin whose parameters depend on other mixins", + "current_goal_text": "std.assert!\n (extract-conclusion-params c0 \n (prod `fresh_name_19` \n (app [global (const «IsSelfA'.phant_axioms»), c0]) c1 \\\n app\n [global (indt «HasB.axioms_»), \n app\n [global\n (const\n «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1], c0]) X230^1) \n The conclusion of a builder is a mixin whose parameters depend on other mixins", "current_goal_predicate": "std.assert!", "failed_attempts": [], "successful_attempts": [ @@ -286241,8 +277088,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", + "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", "rule_loc": [ "File", { @@ -286267,8 +277113,7 @@ }, "siblings": [ { - "goal_text": - "extract-conclusion-params c0 \n (prod `fresh_name_19` (app [global (const «IsSelfA'.phant_axioms»), c0]) \n c1 \\\n app\n [global (indt «HasB.axioms_»), \n app\n [global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1], c0]) X230^1 ;\n std.fatal-error-w-data\n The conclusion of a builder is a mixin whose parameters depend on other mixins \n (extract-conclusion-params c0 \n (prod `fresh_name_19` \n (app [global (const «IsSelfA'.phant_axioms»), c0]) c1 \\\n app\n [global (indt «HasB.axioms_»), \n app\n [global\n (const\n «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1], c0]) X230^1)", + "goal_text": "extract-conclusion-params c0 \n (prod `fresh_name_19` (app [global (const «IsSelfA'.phant_axioms»), c0]) \n c1 \\\n app\n [global (indt «HasB.axioms_»), \n app\n [global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1], c0]) X230^1 ;\n std.fatal-error-w-data\n The conclusion of a builder is a mixin whose parameters depend on other mixins \n (extract-conclusion-params c0 \n (prod `fresh_name_19` \n (app [global (const «IsSelfA'.phant_axioms»), c0]) c1 \\\n app\n [global (indt «HasB.axioms_»), \n app\n [global\n (const\n «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1], c0]) X230^1)", "goal_id": 1765 }, { "goal_text": "!", "goal_id": 1766 } @@ -286282,8 +277127,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", + "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", "rule_loc": [ "File", { @@ -286359,13 +277203,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", + "rule_text": "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 108, "column": 0, "character": 3601 @@ -286380,8 +277222,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -286400,8 +277241,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -286496,13 +277336,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -286594,13 +277432,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -286615,13 +277451,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -286636,13 +277470,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -286657,13 +277489,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -286735,13 +277565,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -286832,13 +277660,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -286872,13 +277698,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -286912,13 +277736,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -286933,13 +277755,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -287239,13 +278059,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -287264,8 +278082,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -287290,13 +278107,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -287311,8 +278126,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -287344,8 +278158,7 @@ "Inference", { "current_goal_id": 1765, - "current_goal_text": - "extract-conclusion-params c0 \n (prod `fresh_name_19` (app [global (const «IsSelfA'.phant_axioms»), c0]) \n c1 \\\n app\n [global (indt «HasB.axioms_»), \n app\n [global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1], c0]) X230^1 ;\n std.fatal-error-w-data\n The conclusion of a builder is a mixin whose parameters depend on other mixins \n (extract-conclusion-params c0 \n (prod `fresh_name_19` \n (app [global (const «IsSelfA'.phant_axioms»), c0]) c1 \\\n app\n [global (indt «HasB.axioms_»), \n app\n [global\n (const\n «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1], c0]) X230^1)", + "current_goal_text": "extract-conclusion-params c0 \n (prod `fresh_name_19` (app [global (const «IsSelfA'.phant_axioms»), c0]) \n c1 \\\n app\n [global (indt «HasB.axioms_»), \n app\n [global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1], c0]) X230^1 ;\n std.fatal-error-w-data\n The conclusion of a builder is a mixin whose parameters depend on other mixins \n (extract-conclusion-params c0 \n (prod `fresh_name_19` \n (app [global (const «IsSelfA'.phant_axioms»), c0]) c1 \\\n app\n [global (indt «HasB.axioms_»), \n app\n [global\n (const\n «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1], c0]) X230^1)", "current_goal_predicate": ";", "failed_attempts": [], "successful_attempts": [ @@ -287375,8 +278188,7 @@ }, "siblings": [ { - "goal_text": - "extract-conclusion-params c0 \n (prod `fresh_name_19` (app [global (const «IsSelfA'.phant_axioms»), c0]) \n c1 \\\n app\n [global (indt «HasB.axioms_»), \n app\n [global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1], c0]) X230^1", + "goal_text": "extract-conclusion-params c0 \n (prod `fresh_name_19` (app [global (const «IsSelfA'.phant_axioms»), c0]) \n c1 \\\n app\n [global (indt «HasB.axioms_»), \n app\n [global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1], c0]) X230^1", "goal_id": 1767 } ], @@ -287408,8 +278220,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", + "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", "rule_loc": [ "File", { @@ -287485,13 +278296,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", + "rule_text": "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 108, "column": 0, "character": 3601 @@ -287506,8 +278315,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -287526,8 +278334,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -287622,13 +278429,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -287720,13 +278525,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -287741,13 +278544,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -287762,13 +278563,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -287783,13 +278582,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -287861,13 +278658,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -287958,13 +278753,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -287998,13 +278791,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -288038,13 +278829,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -288059,13 +278848,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -288365,13 +279152,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -288390,8 +279175,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -288416,13 +279200,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -288437,8 +279219,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -288470,8 +279251,7 @@ "Inference", { "current_goal_id": 1767, - "current_goal_text": - "extract-conclusion-params c0 \n (prod `fresh_name_19` (app [global (const «IsSelfA'.phant_axioms»), c0]) \n c1 \\\n app\n [global (indt «HasB.axioms_»), \n app\n [global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1], c0]) X230^1", + "current_goal_text": "extract-conclusion-params c0 \n (prod `fresh_name_19` (app [global (const «IsSelfA'.phant_axioms»), c0]) \n c1 \\\n app\n [global (indt «HasB.axioms_»), \n app\n [global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1], c0]) X230^1", "current_goal_predicate": "extract-conclusion-params", "failed_attempts": [], "successful_attempts": [ @@ -288480,13 +279260,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -288510,8 +279288,7 @@ "siblings": [ { "goal_text": "!", "goal_id": 1768 }, { - "goal_text": - "pi c1 \\\n decl c1 _ (app [global (const «IsSelfA'.phant_axioms»), c0]) =>\n extract-conclusion-params c0 \n (app\n [global (indt «HasB.axioms_»), \n app\n [global\n (const\n «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1], c0]) X230^1", + "goal_text": "pi c1 \\\n decl c1 _ (app [global (const «IsSelfA'.phant_axioms»), c0]) =>\n extract-conclusion-params c0 \n (app\n [global (indt «HasB.axioms_»), \n app\n [global\n (const\n «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1], c0]) X230^1", "goal_id": 1769 } ], @@ -288524,13 +279301,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -288564,8 +279339,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", + "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", "rule_loc": [ "File", { @@ -288641,13 +279415,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", + "rule_text": "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 108, "column": 0, "character": 3601 @@ -288662,8 +279434,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -288682,8 +279453,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -288778,13 +279548,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -288876,13 +279644,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -288897,13 +279663,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -288918,13 +279682,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -288939,13 +279701,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -289017,13 +279777,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -289114,13 +279872,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -289154,13 +279910,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -289194,13 +279948,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -289215,13 +279967,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -289521,13 +280271,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -289546,8 +280294,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -289572,13 +280319,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -289593,8 +280338,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -289629,18 +280373,15 @@ "cut_victims": [ { "cut_branch_for_goal": { - "goal_text": - "extract-conclusion-params c0 \n (prod `fresh_name_19` (app [global (const «IsSelfA'.phant_axioms»), c0]) \n c1 \\\n app\n [global (indt «HasB.axioms_»), \n app\n [global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1], c0]) X230^1", + "goal_text": "extract-conclusion-params c0 \n (prod `fresh_name_19` (app [global (const «IsSelfA'.phant_axioms»), c0]) \n c1 \\\n app\n [global (indt «HasB.axioms_»), \n app\n [global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1], c0]) X230^1", "goal_id": 1767 }, "cut_branch": { - "rule_text": - "(extract-conclusion-params A0 (app [global A1 | A2]) A3) :- (!), \n (factory-alias->gref A1 A4), (factory-nparams A4 A5), \n (std.map A2 (copy-pack-holes A0) A6), (std.spy (std.take A5 A6 A3)).", + "rule_text": "(extract-conclusion-params A0 (app [global A1 | A2]) A3) :- (!), \n (factory-alias->gref A1 A4), (factory-nparams A4 A5), \n (std.map A2 (copy-pack-holes A0) A6), (std.spy (std.take A5 A6 A3)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 117, "column": 0, "character": 4090 @@ -289650,18 +280391,15 @@ }, { "cut_branch_for_goal": { - "goal_text": - "extract-conclusion-params c0 \n (prod `fresh_name_19` (app [global (const «IsSelfA'.phant_axioms»), c0]) \n c1 \\\n app\n [global (indt «HasB.axioms_»), \n app\n [global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1], c0]) X230^1", + "goal_text": "extract-conclusion-params c0 \n (prod `fresh_name_19` (app [global (const «IsSelfA'.phant_axioms»), c0]) \n c1 \\\n app\n [global (indt «HasB.axioms_»), \n app\n [global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1], c0]) X230^1", "goal_id": 1767 }, "cut_branch": { - "rule_text": - "(extract-conclusion-params A0 A1 A2) :- (whd1 A1 A3), (!), \n (extract-conclusion-params A0 A3 A2).", + "rule_text": "(extract-conclusion-params A0 A1 A2) :- (whd1 A1 A3), (!), \n (extract-conclusion-params A0 A3 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 122, "column": 0, "character": 4303 @@ -289681,8 +280419,7 @@ "Inference", { "current_goal_id": 1769, - "current_goal_text": - "pi c1 \\\n decl c1 _ (app [global (const «IsSelfA'.phant_axioms»), c0]) =>\n extract-conclusion-params c0 \n (app\n [global (indt «HasB.axioms_»), \n app\n [global\n (const\n «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1], c0]) X230^1", + "current_goal_text": "pi c1 \\\n decl c1 _ (app [global (const «IsSelfA'.phant_axioms»), c0]) =>\n extract-conclusion-params c0 \n (app\n [global (indt «HasB.axioms_»), \n app\n [global\n (const\n «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1], c0]) X230^1", "current_goal_predicate": "pi", "failed_attempts": [], "successful_attempts": [ @@ -289693,8 +280430,7 @@ }, "siblings": [ { - "goal_text": - "decl c1 _ (app [global (const «IsSelfA'.phant_axioms»), c0]) =>\n extract-conclusion-params c0 \n (app\n [global (indt «HasB.axioms_»), \n app\n [global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1], c0]) X230^1", + "goal_text": "decl c1 _ (app [global (const «IsSelfA'.phant_axioms»), c0]) =>\n extract-conclusion-params c0 \n (app\n [global (indt «HasB.axioms_»), \n app\n [global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1], c0]) X230^1", "goal_id": 1770 } ], @@ -289712,13 +280448,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -289752,8 +280486,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", + "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", "rule_loc": [ "File", { @@ -289829,13 +280562,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", + "rule_text": "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 108, "column": 0, "character": 3601 @@ -289850,8 +280581,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -289870,8 +280600,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -289966,13 +280695,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -290064,13 +280791,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -290085,13 +280810,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -290106,13 +280829,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -290127,13 +280848,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -290205,13 +280924,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -290302,13 +281019,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -290342,13 +281057,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -290382,13 +281095,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -290403,13 +281114,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -290709,13 +281418,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -290734,8 +281441,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -290760,13 +281466,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -290781,8 +281485,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -290814,8 +281517,7 @@ "Inference", { "current_goal_id": 1770, - "current_goal_text": - "decl c1 _ (app [global (const «IsSelfA'.phant_axioms»), c0]) =>\n extract-conclusion-params c0 \n (app\n [global (indt «HasB.axioms_»), \n app\n [global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1], c0]) X230^1", + "current_goal_text": "decl c1 _ (app [global (const «IsSelfA'.phant_axioms»), c0]) =>\n extract-conclusion-params c0 \n (app\n [global (indt «HasB.axioms_»), \n app\n [global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1], c0]) X230^1", "current_goal_predicate": "=>", "failed_attempts": [], "successful_attempts": [ @@ -290826,8 +281528,7 @@ }, "siblings": [ { - "goal_text": - "extract-conclusion-params c0 \n (app\n [global (indt «HasB.axioms_»), \n app\n [global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1], c0]) X230^1", + "goal_text": "extract-conclusion-params c0 \n (app\n [global (indt «HasB.axioms_»), \n app\n [global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1], c0]) X230^1", "goal_id": 1771 } ], @@ -290850,13 +281551,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -290890,8 +281589,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", + "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", "rule_loc": [ "File", { @@ -290967,13 +281665,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", + "rule_text": "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 108, "column": 0, "character": 3601 @@ -290988,8 +281684,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -291008,8 +281703,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -291104,13 +281798,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -291202,13 +281894,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -291223,13 +281913,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -291244,13 +281932,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -291265,13 +281951,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -291343,13 +282027,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -291440,13 +282122,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -291480,13 +282160,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -291520,13 +282198,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -291541,13 +282217,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -291847,13 +282521,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -291872,8 +282544,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -291898,13 +282569,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -291919,8 +282588,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -291952,21 +282620,18 @@ "Inference", { "current_goal_id": 1771, - "current_goal_text": - "extract-conclusion-params c0 \n (app\n [global (indt «HasB.axioms_»), \n app\n [global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1], c0]) X230^1", + "current_goal_text": "extract-conclusion-params c0 \n (app\n [global (indt «HasB.axioms_»), \n app\n [global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1], c0]) X230^1", "current_goal_predicate": "extract-conclusion-params", "failed_attempts": [ { "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (app [global A1 | A2]) A3) :- (!), \n (factory-alias->gref A1 A4), (factory-nparams A4 A5), \n (std.map A2 (copy-pack-holes A0) A6), (std.spy (std.take A5 A6 A3)).", + "rule_text": "(extract-conclusion-params A0 (app [global A1 | A2]) A3) :- (!), \n (factory-alias->gref A1 A4), (factory-nparams A4 A5), \n (std.map A2 (copy-pack-holes A0) A6), (std.spy (std.take A5 A6 A3)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 117, "column": 0, "character": 4090 @@ -291991,13 +282656,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -292016,8 +282679,7 @@ "siblings": [ { "goal_text": "!", "goal_id": 1772 }, { - "goal_text": - "factory-alias->gref (indt «HasB.axioms_») X236^2", + "goal_text": "factory-alias->gref (indt «HasB.axioms_») X236^2", "goal_id": 1773 }, { @@ -292025,8 +282687,7 @@ "goal_id": 1774 }, { - "goal_text": - "std.map\n [app\n [global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1], c0] (copy-pack-holes c0) X238^2", + "goal_text": "std.map\n [app\n [global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1], c0] (copy-pack-holes c0) X238^2", "goal_id": 1775 }, { @@ -292043,13 +282704,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -292074,13 +282733,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -292114,8 +282771,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", + "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", "rule_loc": [ "File", { @@ -292191,13 +282847,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", + "rule_text": "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 108, "column": 0, "character": 3601 @@ -292212,8 +282866,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -292232,8 +282885,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -292328,13 +282980,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -292426,13 +283076,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -292447,13 +283095,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -292468,13 +283114,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -292489,13 +283133,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -292567,13 +283209,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -292664,13 +283304,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -292704,13 +283342,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -292744,13 +283380,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -292765,13 +283399,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -293071,13 +283703,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -293096,8 +283726,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -293122,13 +283751,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -293143,8 +283770,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -293179,18 +283805,15 @@ "cut_victims": [ { "cut_branch_for_goal": { - "goal_text": - "extract-conclusion-params c0 \n (app\n [global (indt «HasB.axioms_»), \n app\n [global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1], c0]) X230^1", + "goal_text": "extract-conclusion-params c0 \n (app\n [global (indt «HasB.axioms_»), \n app\n [global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1], c0]) X230^1", "goal_id": 1771 }, "cut_branch": { - "rule_text": - "(extract-conclusion-params A0 A1 A2) :- (whd1 A1 A3), (!), \n (extract-conclusion-params A0 A3 A2).", + "rule_text": "(extract-conclusion-params A0 A1 A2) :- (whd1 A1 A3), (!), \n (extract-conclusion-params A0 A3 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 122, "column": 0, "character": 4303 @@ -293210,8 +283833,7 @@ "Inference", { "current_goal_id": 1773, - "current_goal_text": - "factory-alias->gref (indt «HasB.axioms_») X236^2", + "current_goal_text": "factory-alias->gref (indt «HasB.axioms_») X236^2", "current_goal_predicate": "factory-alias->gref", "failed_attempts": [], "successful_attempts": [ @@ -293220,13 +283842,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-alias->gref A0 A1) :- (phant-abbrev A1 A0 _), (!).", + "rule_text": "(factory-alias->gref A0 A1) :- (phant-abbrev A1 A0 _), (!).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 74, "column": 0, "character": 2385 @@ -293255,13 +283875,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-alias->gref A0 A1) :- (phant-abbrev A1 A0 _), (!).", + "rule_text": "(factory-alias->gref A0 A1) :- (phant-abbrev A1 A0 _), (!).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 74, "column": 0, "character": 2385 @@ -293276,13 +283894,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -293307,13 +283923,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -293347,8 +283961,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", + "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", "rule_loc": [ "File", { @@ -293424,13 +284037,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", + "rule_text": "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 108, "column": 0, "character": 3601 @@ -293445,8 +284056,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -293465,8 +284075,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -293561,13 +284170,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -293659,13 +284266,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -293680,13 +284285,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -293701,13 +284304,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -293722,13 +284323,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -293800,13 +284399,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -293897,13 +284494,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -293937,13 +284532,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -293977,13 +284570,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -293998,13 +284589,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -294304,13 +284893,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -294329,8 +284916,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -294355,13 +284941,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -294376,8 +284960,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -294416,8 +284999,7 @@ "rule": [ "UserRule", { - "rule_text": - "(phant-abbrev (indt «HasA.axioms_») (const «HasA.phant_axioms») \n «interleave_context.HasA.axioms») :- .", + "rule_text": "(phant-abbrev (indt «HasA.axioms_») (const «HasA.phant_axioms») \n «interleave_context.HasA.axioms») :- .", "rule_loc": [ "File", { @@ -294441,8 +285023,7 @@ "rule": [ "UserRule", { - "rule_text": - "(phant-abbrev (indc «HasA.Axioms_») (const «HasA.phant_Build») \n «interleave_context.HasA.Build») :- .", + "rule_text": "(phant-abbrev (indc «HasA.Axioms_») (const «HasA.phant_Build») \n «interleave_context.HasA.Build») :- .", "rule_loc": [ "File", { @@ -294466,8 +285047,7 @@ "rule": [ "UserRule", { - "rule_text": - "(phant-abbrev (indt «HasB.axioms_») (const «HasB.phant_axioms») \n «interleave_context.HasB.axioms») :- .", + "rule_text": "(phant-abbrev (indt «HasB.axioms_») (const «HasB.phant_axioms») \n «interleave_context.HasB.axioms») :- .", "rule_loc": [ "File", { @@ -294491,8 +285071,7 @@ "rule": [ "UserRule", { - "rule_text": - "(phant-abbrev (indc «HasB.Axioms_») (const «HasB.phant_Build») \n «interleave_context.HasB.Build») :- .", + "rule_text": "(phant-abbrev (indc «HasB.Axioms_») (const «HasB.phant_Build») \n «interleave_context.HasB.Build») :- .", "rule_loc": [ "File", { @@ -294516,8 +285095,7 @@ "rule": [ "UserRule", { - "rule_text": - "(phant-abbrev (indt «IsSelfA.axioms_») (const «IsSelfA.phant_axioms») \n «interleave_context.IsSelfA.axioms») :- .", + "rule_text": "(phant-abbrev (indt «IsSelfA.axioms_») (const «IsSelfA.phant_axioms») \n «interleave_context.IsSelfA.axioms») :- .", "rule_loc": [ "File", { @@ -294541,8 +285119,7 @@ "rule": [ "UserRule", { - "rule_text": - "(phant-abbrev (indc «IsSelfA.Axioms_») (const «IsSelfA.phant_Build») \n «interleave_context.IsSelfA.Build») :- .", + "rule_text": "(phant-abbrev (indc «IsSelfA.Axioms_») (const «IsSelfA.phant_Build») \n «interleave_context.IsSelfA.Build») :- .", "rule_loc": [ "File", { @@ -294566,8 +285143,7 @@ "rule": [ "UserRule", { - "rule_text": - "(phant-abbrev (indt «IsSelfA'.axioms_») (const «IsSelfA'.phant_axioms») \n «interleave_context.IsSelfA'.axioms») :- .", + "rule_text": "(phant-abbrev (indt «IsSelfA'.axioms_») (const «IsSelfA'.phant_axioms») \n «interleave_context.IsSelfA'.axioms») :- .", "rule_loc": [ "File", { @@ -294591,8 +285167,7 @@ "rule": [ "UserRule", { - "rule_text": - "(phant-abbrev (indc «IsSelfA'.Axioms_») (const «IsSelfA'.phant_Build») \n «interleave_context.IsSelfA'.Build») :- .", + "rule_text": "(phant-abbrev (indc «IsSelfA'.Axioms_») (const «IsSelfA'.phant_Build») \n «interleave_context.IsSelfA'.Build») :- .", "rule_loc": [ "File", { @@ -294620,8 +285195,7 @@ "rule": [ "UserRule", { - "rule_text": - "(phant-abbrev (indt «HasA.axioms_») (const «HasA.phant_axioms») \n «interleave_context.HasA.axioms») :- .", + "rule_text": "(phant-abbrev (indt «HasA.axioms_») (const «HasA.phant_axioms») \n «interleave_context.HasA.axioms») :- .", "rule_loc": [ "File", { @@ -294640,13 +285214,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-alias->gref A0 A1) :- (phant-abbrev A1 A0 _), (!).", + "rule_text": "(factory-alias->gref A0 A1) :- (phant-abbrev A1 A0 _), (!).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 74, "column": 0, "character": 2385 @@ -294661,13 +285233,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -294692,13 +285262,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -294732,8 +285300,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", + "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", "rule_loc": [ "File", { @@ -294809,13 +285376,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", + "rule_text": "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 108, "column": 0, "character": 3601 @@ -294830,8 +285395,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -294850,8 +285414,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -294946,13 +285509,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -295044,13 +285605,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -295065,13 +285624,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -295086,13 +285643,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -295107,13 +285662,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -295185,13 +285738,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -295282,13 +285833,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -295322,13 +285871,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -295362,13 +285909,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -295383,13 +285928,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -295689,13 +286232,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -295714,8 +286255,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -295740,13 +286280,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -295761,8 +286299,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -295794,8 +286331,7 @@ "Inference", { "current_goal_id": 1773, - "current_goal_text": - "factory-alias->gref (indt «HasB.axioms_») X236^2", + "current_goal_text": "factory-alias->gref (indt «HasB.axioms_») X236^2", "current_goal_predicate": "factory-alias->gref", "failed_attempts": [], "successful_attempts": [ @@ -295804,13 +286340,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-alias->gref A0 A0) :- (phant-abbrev A0 _ _), (!).", + "rule_text": "(factory-alias->gref A0 A0) :- (phant-abbrev A0 _ _), (!).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 75, "column": 0, "character": 2443 @@ -295839,13 +286373,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-alias->gref A0 A0) :- (phant-abbrev A0 _ _), (!).", + "rule_text": "(factory-alias->gref A0 A0) :- (phant-abbrev A0 _ _), (!).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 75, "column": 0, "character": 2443 @@ -295860,13 +286392,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -295891,13 +286421,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -295931,8 +286459,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", + "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", "rule_loc": [ "File", { @@ -296008,13 +286535,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", + "rule_text": "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 108, "column": 0, "character": 3601 @@ -296029,8 +286554,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -296049,8 +286573,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -296145,13 +286668,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -296243,13 +286764,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -296264,13 +286783,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -296285,13 +286802,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -296306,13 +286821,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -296384,13 +286897,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -296481,13 +286992,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -296521,13 +287030,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -296561,13 +287068,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -296582,13 +287087,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -296888,13 +287391,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -296913,8 +287414,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -296939,13 +287439,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -296960,8 +287458,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -297000,8 +287497,7 @@ "rule": [ "UserRule", { - "rule_text": - "(phant-abbrev (indt «HasB.axioms_») (const «HasB.phant_axioms») \n «interleave_context.HasB.axioms») :- .", + "rule_text": "(phant-abbrev (indt «HasB.axioms_») (const «HasB.phant_axioms») \n «interleave_context.HasB.axioms») :- .", "rule_loc": [ "File", { @@ -297022,8 +287518,7 @@ "rule": [ "UserRule", { - "rule_text": - "(phant-abbrev (indt «HasA.axioms_») (const «HasA.phant_axioms») \n «interleave_context.HasA.axioms») :- .", + "rule_text": "(phant-abbrev (indt «HasA.axioms_») (const «HasA.phant_axioms») \n «interleave_context.HasA.axioms») :- .", "rule_loc": [ "File", { @@ -297052,8 +287547,7 @@ "rule": [ "UserRule", { - "rule_text": - "(phant-abbrev (indt «HasA.axioms_») (const «HasA.phant_axioms») \n «interleave_context.HasA.axioms») :- .", + "rule_text": "(phant-abbrev (indt «HasA.axioms_») (const «HasA.phant_axioms») \n «interleave_context.HasA.axioms») :- .", "rule_loc": [ "File", { @@ -297072,13 +287566,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-alias->gref A0 A0) :- (phant-abbrev A0 _ _), (!).", + "rule_text": "(factory-alias->gref A0 A0) :- (phant-abbrev A0 _ _), (!).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 75, "column": 0, "character": 2443 @@ -297093,13 +287585,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -297124,13 +287614,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -297164,8 +287652,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", + "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", "rule_loc": [ "File", { @@ -297241,13 +287728,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", + "rule_text": "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 108, "column": 0, "character": 3601 @@ -297262,8 +287747,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -297282,8 +287766,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -297378,13 +287861,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -297476,13 +287957,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -297497,13 +287976,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -297518,13 +287995,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -297539,13 +288014,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -297617,13 +288090,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -297714,13 +288185,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -297754,13 +288223,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -297794,13 +288261,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -297815,13 +288280,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -298121,13 +288584,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -298146,8 +288607,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -298172,13 +288632,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -298193,8 +288651,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -298233,8 +288690,7 @@ "goal_id": 1779 }, "cut_branch": { - "rule_text": - "(phant-abbrev (indt «IsSelfA.axioms_») (const «IsSelfA.phant_axioms») \n «interleave_context.IsSelfA.axioms») :- .", + "rule_text": "(phant-abbrev (indt «IsSelfA.axioms_») (const «IsSelfA.phant_axioms») \n «interleave_context.IsSelfA.axioms») :- .", "rule_loc": [ "File", { @@ -298252,8 +288708,7 @@ "goal_id": 1779 }, "cut_branch": { - "rule_text": - "(phant-abbrev (indt «IsSelfA'.axioms_») (const «IsSelfA'.phant_axioms») \n «interleave_context.IsSelfA'.axioms») :- .", + "rule_text": "(phant-abbrev (indt «IsSelfA'.axioms_») (const «IsSelfA'.phant_axioms») \n «interleave_context.IsSelfA'.axioms») :- .", "rule_loc": [ "File", { @@ -298267,13 +288722,11 @@ }, { "cut_branch_for_goal": { - "goal_text": - "factory-alias->gref (indt «HasB.axioms_») X236^2", + "goal_text": "factory-alias->gref (indt «HasB.axioms_») X236^2", "goal_id": 1773 }, "cut_branch": { - "rule_text": - "(factory-alias->gref (indt «A.axioms_») (indt «A.axioms_»)) :- .", + "rule_text": "(factory-alias->gref (indt «A.axioms_») (indt «A.axioms_»)) :- .", "rule_loc": [ "File", { @@ -298287,13 +288740,11 @@ }, { "cut_branch_for_goal": { - "goal_text": - "factory-alias->gref (indt «HasB.axioms_») X236^2", + "goal_text": "factory-alias->gref (indt «HasB.axioms_») X236^2", "goal_id": 1773 }, "cut_branch": { - "rule_text": - "(factory-alias->gref (indt «B.axioms_») (indt «B.axioms_»)) :- .", + "rule_text": "(factory-alias->gref (indt «B.axioms_») (indt «B.axioms_»)) :- .", "rule_loc": [ "File", { @@ -298307,13 +288758,11 @@ }, { "cut_branch_for_goal": { - "goal_text": - "factory-alias->gref (indt «HasB.axioms_») X236^2", + "goal_text": "factory-alias->gref (indt «HasB.axioms_») X236^2", "goal_id": 1773 }, "cut_branch": { - "rule_text": - "(factory-alias->gref (indt «SelfA.axioms_») (indt «SelfA.axioms_»)) :- .", + "rule_text": "(factory-alias->gref (indt «SelfA.axioms_») (indt «SelfA.axioms_»)) :- .", "rule_loc": [ "File", { @@ -298366,8 +288815,7 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-nparams (indt «HasB.axioms_») 1) :- .", + "rule_text": "(factory-nparams (indt «HasB.axioms_») 1) :- .", "rule_loc": [ "File", { @@ -298388,8 +288836,7 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-nparams (indt «HasA.axioms_») 1) :- .", + "rule_text": "(factory-nparams (indt «HasA.axioms_») 1) :- .", "rule_loc": [ "File", { @@ -298418,8 +288865,7 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-nparams (indt «HasA.axioms_») 1) :- .", + "rule_text": "(factory-nparams (indt «HasA.axioms_») 1) :- .", "rule_loc": [ "File", { @@ -298438,13 +288884,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -298469,13 +288913,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -298509,8 +288951,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", + "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", "rule_loc": [ "File", { @@ -298586,13 +289027,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", + "rule_text": "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 108, "column": 0, "character": 3601 @@ -298607,8 +289046,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -298627,8 +289065,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -298723,13 +289160,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -298821,13 +289256,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -298842,13 +289275,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -298863,13 +289294,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -298884,13 +289313,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -298962,13 +289389,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -299059,13 +289484,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -299099,13 +289522,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -299139,13 +289560,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -299160,13 +289579,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -299466,13 +289883,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -299491,8 +289906,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -299517,13 +289931,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -299538,8 +289950,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -299571,8 +289982,7 @@ "Inference", { "current_goal_id": 1775, - "current_goal_text": - "std.map\n [app\n [global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1], c0] (copy-pack-holes c0) X238^2", + "current_goal_text": "std.map\n [app\n [global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1], c0] (copy-pack-holes c0) X238^2", "current_goal_predicate": "std.map", "failed_attempts": [], "successful_attempts": [ @@ -299581,8 +289991,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -299606,8 +290015,7 @@ }, "siblings": [ { - "goal_text": - "copy-pack-holes c0 \n (app\n [global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1]) X239^2", + "goal_text": "copy-pack-holes c0 \n (app\n [global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1]) X239^2", "goal_id": 1781 }, { @@ -299624,8 +290032,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -299644,13 +290051,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -299675,13 +290080,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -299715,8 +290118,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", + "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", "rule_loc": [ "File", { @@ -299792,13 +290194,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", + "rule_text": "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 108, "column": 0, "character": 3601 @@ -299813,8 +290213,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -299833,8 +290232,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -299929,13 +290327,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -300027,13 +290423,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -300048,13 +290442,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -300069,13 +290461,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -300090,13 +290480,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -300168,13 +290556,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -300265,13 +290651,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -300305,13 +290689,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -300345,13 +290727,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -300366,13 +290746,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -300672,13 +291050,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -300697,8 +291073,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -300723,13 +291098,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -300744,8 +291117,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -300777,8 +291149,7 @@ "Inference", { "current_goal_id": 1781, - "current_goal_text": - "copy-pack-holes c0 \n (app\n [global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1]) X239^2", + "current_goal_text": "copy-pack-holes c0 \n (app\n [global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1]) X239^2", "current_goal_predicate": "copy-pack-holes", "failed_attempts": [], "successful_attempts": [ @@ -300787,13 +291158,11 @@ "rule": [ "UserRule", { - "rule_text": - "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", + "rule_text": "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 318, "column": 0, "character": 12866 @@ -300820,8 +291189,7 @@ "goal_id": 1784 }, { - "goal_text": - "[pi c2 \\\n pi c3 \\\n pi c4 \\\n pi c5 \\\n pi c6 \\\n pi c7 \\\n copy (app [global c7 | c2]) (app [global c7 | c3]) :-\n , (pack? c7 _) (!) (std.rev c2 [c4, c0 | c5]) (copy c0 X243^2) \n (std.map c5 copy c6) \n (std.rev [global (const «elpi.hole»), X243^2 | c6] c3) | X242^2]\n =>\n copy\n (app\n [global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1]) X239^2", + "goal_text": "[pi c2 \\\n pi c3 \\\n pi c4 \\\n pi c5 \\\n pi c6 \\\n pi c7 \\\n copy (app [global c7 | c2]) (app [global c7 | c3]) :-\n , (pack? c7 _) (!) (std.rev c2 [c4, c0 | c5]) (copy c0 X243^2) \n (std.map c5 copy c6) \n (std.rev [global (const «elpi.hole»), X243^2 | c6] c3) | X242^2]\n =>\n copy\n (app\n [global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1]) X239^2", "goal_id": 1785 } ], @@ -300834,13 +291202,11 @@ "rule": [ "UserRule", { - "rule_text": - "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", + "rule_text": "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 318, "column": 0, "character": 12866 @@ -300855,8 +291221,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -300875,13 +291240,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -300906,13 +291269,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -300946,8 +291307,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", + "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", "rule_loc": [ "File", { @@ -301023,13 +291383,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", + "rule_text": "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 108, "column": 0, "character": 3601 @@ -301044,8 +291402,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -301064,8 +291421,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -301160,13 +291516,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -301258,13 +291612,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -301279,13 +291631,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -301300,13 +291650,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -301321,13 +291669,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -301399,13 +291745,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -301496,13 +291840,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -301536,13 +291878,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -301576,13 +291916,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -301597,13 +291935,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -301903,13 +292239,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -301928,8 +292262,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -301954,13 +292287,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -301975,8 +292306,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -302017,13 +292347,11 @@ "rule": [ "UserRule", { - "rule_text": - "(findall-local-canonical A0) :- (std.findall (local-canonical A1) A2), \n (std.map A2 local-canonical-gref A0).", + "rule_text": "(findall-local-canonical A0) :- (std.findall (local-canonical A1) A2), \n (std.map A2 local-canonical-gref A0).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 200, "column": 0, "character": 7260 @@ -302052,13 +292380,11 @@ "rule": [ "UserRule", { - "rule_text": - "(findall-local-canonical A0) :- (std.findall (local-canonical A1) A2), \n (std.map A2 local-canonical-gref A0).", + "rule_text": "(findall-local-canonical A0) :- (std.findall (local-canonical A1) A2), \n (std.map A2 local-canonical-gref A0).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 200, "column": 0, "character": 7260 @@ -302073,13 +292399,11 @@ "rule": [ "UserRule", { - "rule_text": - "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", + "rule_text": "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 318, "column": 0, "character": 12866 @@ -302094,8 +292418,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -302114,13 +292437,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -302145,13 +292466,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -302185,8 +292504,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", + "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", "rule_loc": [ "File", { @@ -302262,13 +292580,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", + "rule_text": "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 108, "column": 0, "character": 3601 @@ -302283,8 +292599,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -302303,8 +292618,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -302399,13 +292713,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -302497,13 +292809,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -302518,13 +292828,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -302539,13 +292847,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -302560,13 +292866,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -302638,13 +292942,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -302735,13 +293037,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -302775,13 +293075,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -302815,13 +293113,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -302836,13 +293132,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -303142,13 +293436,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -303167,8 +293459,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -303193,13 +293484,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -303214,8 +293503,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -303256,8 +293544,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.findall A0 A1) :- (findall_solutions A0 A1).", + "rule_text": "(std.findall A0 A1) :- (findall_solutions A0 A1).", "rule_loc": [ "File", { @@ -303276,8 +293563,7 @@ }, "siblings": [ { - "goal_text": - "findall_solutions (local-canonical X244^2) X245^2", + "goal_text": "findall_solutions (local-canonical X244^2) X245^2", "goal_id": 1788 } ], @@ -303290,8 +293576,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.findall A0 A1) :- (findall_solutions A0 A1).", + "rule_text": "(std.findall A0 A1) :- (findall_solutions A0 A1).", "rule_loc": [ "File", { @@ -303310,13 +293595,11 @@ "rule": [ "UserRule", { - "rule_text": - "(findall-local-canonical A0) :- (std.findall (local-canonical A1) A2), \n (std.map A2 local-canonical-gref A0).", + "rule_text": "(findall-local-canonical A0) :- (std.findall (local-canonical A1) A2), \n (std.map A2 local-canonical-gref A0).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 200, "column": 0, "character": 7260 @@ -303331,13 +293614,11 @@ "rule": [ "UserRule", { - "rule_text": - "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", + "rule_text": "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 318, "column": 0, "character": 12866 @@ -303352,8 +293633,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -303372,13 +293652,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -303403,13 +293681,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -303443,8 +293719,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", + "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", "rule_loc": [ "File", { @@ -303520,13 +293795,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", + "rule_text": "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 108, "column": 0, "character": 3601 @@ -303541,8 +293814,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -303561,8 +293833,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -303657,13 +293928,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -303755,13 +294024,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -303776,13 +294043,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -303797,13 +294062,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -303818,13 +294081,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -303896,13 +294157,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -303993,13 +294252,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -304033,13 +294290,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -304073,13 +294328,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -304094,13 +294347,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -304400,13 +294651,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -304425,8 +294674,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -304451,13 +294699,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -304472,8 +294718,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -304505,8 +294750,7 @@ "Findall", { "findall_goal_id": 1788, - "findall_goal_text": - "findall_solutions (local-canonical X244^2) X245^2", + "findall_goal_text": "findall_solutions (local-canonical X244^2) X245^2", "findall_cards": [ { "step_id": 0, @@ -304546,8 +294790,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.findall A0 A1) :- (findall_solutions A0 A1).", + "rule_text": "(std.findall A0 A1) :- (findall_solutions A0 A1).", "rule_loc": [ "File", { @@ -304566,13 +294809,11 @@ "rule": [ "UserRule", { - "rule_text": - "(findall-local-canonical A0) :- (std.findall (local-canonical A1) A2), \n (std.map A2 local-canonical-gref A0).", + "rule_text": "(findall-local-canonical A0) :- (std.findall (local-canonical A1) A2), \n (std.map A2 local-canonical-gref A0).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 200, "column": 0, "character": 7260 @@ -304587,13 +294828,11 @@ "rule": [ "UserRule", { - "rule_text": - "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", + "rule_text": "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 318, "column": 0, "character": 12866 @@ -304608,8 +294847,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -304628,13 +294866,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -304659,13 +294895,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -304699,8 +294933,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", + "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", "rule_loc": [ "File", { @@ -304776,13 +295009,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", + "rule_text": "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 108, "column": 0, "character": 3601 @@ -304797,8 +295028,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -304817,8 +295047,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -304913,13 +295142,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -305011,13 +295238,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -305032,13 +295257,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -305053,13 +295276,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -305074,13 +295295,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -305152,13 +295371,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -305249,13 +295466,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -305289,13 +295504,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -305329,13 +295542,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -305350,13 +295561,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -305656,13 +295865,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -305681,8 +295888,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -305707,13 +295913,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -305728,8 +295932,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -305813,13 +296016,11 @@ "rule": [ "UserRule", { - "rule_text": - "(findall-local-canonical A0) :- (std.findall (local-canonical A1) A2), \n (std.map A2 local-canonical-gref A0).", + "rule_text": "(findall-local-canonical A0) :- (std.findall (local-canonical A1) A2), \n (std.map A2 local-canonical-gref A0).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 200, "column": 0, "character": 7260 @@ -305834,13 +296035,11 @@ "rule": [ "UserRule", { - "rule_text": - "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", + "rule_text": "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 318, "column": 0, "character": 12866 @@ -305855,8 +296054,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -305875,13 +296073,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -305906,13 +296102,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -305946,8 +296140,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", + "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", "rule_loc": [ "File", { @@ -306023,13 +296216,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", + "rule_text": "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 108, "column": 0, "character": 3601 @@ -306044,8 +296235,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -306064,8 +296254,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -306160,13 +296349,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -306258,13 +296445,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -306279,13 +296464,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -306300,13 +296483,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -306321,13 +296502,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -306399,13 +296578,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -306496,13 +296673,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -306536,13 +296711,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -306576,13 +296749,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -306597,13 +296768,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -306903,13 +297072,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -306928,8 +297095,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -306954,13 +297120,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -306975,8 +297139,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -307021,8 +297184,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/stdpp.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/stdpp.elpi", "line": 196, "column": 0, "character": 7411 @@ -307046,8 +297208,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/stdpp.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/stdpp.elpi", "line": 196, "column": 0, "character": 7411 @@ -307062,13 +297223,11 @@ "rule": [ "UserRule", { - "rule_text": - "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", + "rule_text": "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 318, "column": 0, "character": 12866 @@ -307083,8 +297242,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -307103,13 +297261,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -307134,13 +297290,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -307174,8 +297328,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", + "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", "rule_loc": [ "File", { @@ -307251,13 +297404,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", + "rule_text": "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 108, "column": 0, "character": 3601 @@ -307272,8 +297423,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -307292,8 +297442,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -307388,13 +297537,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -307486,13 +297633,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -307507,13 +297652,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -307528,13 +297671,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -307549,13 +297690,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -307627,13 +297766,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -307724,13 +297861,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -307764,13 +297899,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -307804,13 +297937,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -307825,13 +297956,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -308131,13 +298260,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -308156,8 +298283,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -308182,13 +298308,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -308203,8 +298327,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -308236,8 +298359,7 @@ "Inference", { "current_goal_id": 1785, - "current_goal_text": - "[pi c2 \\\n pi c3 \\\n pi c4 \\\n pi c5 \\\n pi c6 \\\n pi c7 \\\n copy (app [global c7 | c2]) (app [global c7 | c3]) :-\n , (pack? c7 _) (!) (std.rev c2 [c4, c0 | c5]) (copy c0 X243^2) \n (std.map c5 copy c6) \n (std.rev [global (const «elpi.hole»), X243^2 | c6] c3)] =>\n copy\n (app\n [global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1]) X239^2", + "current_goal_text": "[pi c2 \\\n pi c3 \\\n pi c4 \\\n pi c5 \\\n pi c6 \\\n pi c7 \\\n copy (app [global c7 | c2]) (app [global c7 | c3]) :-\n , (pack? c7 _) (!) (std.rev c2 [c4, c0 | c5]) (copy c0 X243^2) \n (std.map c5 copy c6) \n (std.rev [global (const «elpi.hole»), X243^2 | c6] c3)] =>\n copy\n (app\n [global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1]) X239^2", "current_goal_predicate": "=>", "failed_attempts": [], "successful_attempts": [ @@ -308248,8 +298370,7 @@ }, "siblings": [ { - "goal_text": - "copy\n (app\n [global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1]) X239^2", + "goal_text": "copy\n (app\n [global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1]) X239^2", "goal_id": 1791 } ], @@ -308267,13 +298388,11 @@ "rule": [ "UserRule", { - "rule_text": - "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", + "rule_text": "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 318, "column": 0, "character": 12866 @@ -308288,8 +298407,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -308308,13 +298426,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -308339,13 +298455,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -308379,8 +298493,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", + "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", "rule_loc": [ "File", { @@ -308456,13 +298569,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", + "rule_text": "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 108, "column": 0, "character": 3601 @@ -308477,8 +298588,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -308497,8 +298607,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -308593,13 +298702,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -308691,13 +298798,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -308712,13 +298817,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -308733,13 +298836,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -308754,13 +298855,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -308832,13 +298931,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -308929,13 +299026,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -308969,13 +299064,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -309009,13 +299102,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -309030,13 +299121,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -309336,13 +299425,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -309361,8 +299448,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -309387,13 +299473,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -309408,8 +299492,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -309441,8 +299524,7 @@ "Inference", { "current_goal_id": 1791, - "current_goal_text": - "copy\n (app\n [global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1]) X239^2", + "current_goal_text": "copy\n (app\n [global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1]) X239^2", "current_goal_predicate": "copy", "failed_attempts": [], "successful_attempts": [ @@ -309451,8 +299533,7 @@ "rule": [ "UserRule", { - "rule_text": - "(copy (app [global A5 | A0]) (app [global A5 | A1])) :- (pack? A5 _), (!), \n (std.rev A0 [A2, c0 | A3]), (copy c0 X243^2), (std.map A3 copy A4), \n (std.rev [global (const «elpi.hole»), X243^2 | A4] A1).", + "rule_text": "(copy (app [global A5 | A0]) (app [global A5 | A1])) :- (pack? A5 _), (!), \n (std.rev A0 [A2, c0 | A3]), (copy c0 X243^2), (std.map A3 copy A4), \n (std.rev [global (const «elpi.hole»), X243^2 | A4] A1).", "rule_loc": [ "Context", 577 ] } ], @@ -309470,8 +299551,7 @@ }, "siblings": [ { - "goal_text": - "pack? (const «Builders_18.Builders_18_T__canonical__interleave_context_A») \n _", + "goal_text": "pack? (const «Builders_18.Builders_18_T__canonical__interleave_context_A») \n _", "goal_id": 1792 }, { "goal_text": "!", "goal_id": 1793 }, @@ -309482,8 +299562,7 @@ { "goal_text": "copy c0 X243^2", "goal_id": 1795 }, { "goal_text": "std.map X248^2 copy X249^2", "goal_id": 1796 }, { - "goal_text": - "std.rev [global (const «elpi.hole»), X243^2 | X249^2] X246^2", + "goal_text": "std.rev [global (const «elpi.hole»), X243^2 | X249^2] X246^2", "goal_id": 1797 } ], @@ -309496,8 +299575,7 @@ "rule": [ "UserRule", { - "rule_text": - "(copy (app [global A5 | A0]) (app [global A5 | A1])) :- (pack? A5 _), (!), \n (std.rev A0 [A2, c0 | A3]), (copy c0 X243^2), (std.map A3 copy A4), \n (std.rev [global (const «elpi.hole»), X243^2 | A4] A1).", + "rule_text": "(copy (app [global A5 | A0]) (app [global A5 | A1])) :- (pack? A5 _), (!), \n (std.rev A0 [A2, c0 | A3]), (copy c0 X243^2), (std.map A3 copy A4), \n (std.rev [global (const «elpi.hole»), X243^2 | A4] A1).", "rule_loc": [ "Context", 577 ] } ], @@ -309513,13 +299591,11 @@ "rule": [ "UserRule", { - "rule_text": - "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", + "rule_text": "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 318, "column": 0, "character": 12866 @@ -309534,8 +299610,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -309554,13 +299629,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -309585,13 +299658,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -309625,8 +299696,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", + "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", "rule_loc": [ "File", { @@ -309702,13 +299772,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", + "rule_text": "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 108, "column": 0, "character": 3601 @@ -309723,8 +299791,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -309743,8 +299810,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -309839,13 +299905,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -309937,13 +300001,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -309958,13 +300020,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -309979,13 +300039,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -310000,13 +300058,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -310078,13 +300134,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -310175,13 +300229,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -310215,13 +300267,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -310255,13 +300305,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -310276,13 +300324,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -310582,13 +300628,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -310607,8 +300651,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -310633,13 +300676,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -310654,8 +300695,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -310687,8 +300727,7 @@ "Inference", { "current_goal_id": 1792, - "current_goal_text": - "pack? (const «Builders_18.Builders_18_T__canonical__interleave_context_A») \n _", + "current_goal_text": "pack? (const «Builders_18.Builders_18_T__canonical__interleave_context_A») \n _", "current_goal_predicate": "pack?", "failed_attempts": [], "successful_attempts": [], @@ -310698,8 +300737,7 @@ "rule": [ "UserRule", { - "rule_text": - "(copy (app [global A5 | A0]) (app [global A5 | A1])) :- (pack? A5 _), (!), \n (std.rev A0 [A2, c0 | A3]), (copy c0 X243^2), (std.map A3 copy A4), \n (std.rev [global (const «elpi.hole»), X243^2 | A4] A1).", + "rule_text": "(copy (app [global A5 | A0]) (app [global A5 | A1])) :- (pack? A5 _), (!), \n (std.rev A0 [A2, c0 | A3]), (copy c0 X243^2), (std.map A3 copy A4), \n (std.rev [global (const «elpi.hole»), X243^2 | A4] A1).", "rule_loc": [ "Context", 577 ] } ], @@ -310715,13 +300753,11 @@ "rule": [ "UserRule", { - "rule_text": - "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", + "rule_text": "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 318, "column": 0, "character": 12866 @@ -310736,8 +300772,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -310756,13 +300791,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -310787,13 +300820,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -310827,8 +300858,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", + "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", "rule_loc": [ "File", { @@ -310904,13 +300934,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", + "rule_text": "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 108, "column": 0, "character": 3601 @@ -310925,8 +300953,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -310945,8 +300972,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -311041,13 +301067,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -311139,13 +301163,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -311160,13 +301182,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -311181,13 +301201,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -311202,13 +301220,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -311280,13 +301296,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -311377,13 +301391,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -311417,13 +301429,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -311457,13 +301467,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -311478,13 +301486,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -311784,13 +301790,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -311809,8 +301813,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -311835,13 +301838,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -311856,8 +301857,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -311889,8 +301889,7 @@ "Inference", { "current_goal_id": 1791, - "current_goal_text": - "copy\n (app\n [global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1]) X239^2", + "current_goal_text": "copy\n (app\n [global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1]) X239^2", "current_goal_predicate": "copy", "failed_attempts": [], "successful_attempts": [ @@ -311899,8 +301898,7 @@ "rule": [ "UserRule", { - "rule_text": - "(copy A0 A1) :- (name A0), (!), (A0 = A1), (!).", + "rule_text": "(copy A0 A1) :- (name A0), (!), (A0 = A1), (!).", "rule_loc": [ "File", { @@ -311922,14 +301920,12 @@ }, "siblings": [ { - "goal_text": - "name\n (app\n [global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1])", + "goal_text": "name\n (app\n [global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1])", "goal_id": 1798 }, { "goal_text": "!", "goal_id": 1799 }, { - "goal_text": - "app\n [global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1] = X239^2", + "goal_text": "app\n [global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1] = X239^2", "goal_id": 1800 }, { "goal_text": "!", "goal_id": 1801 } @@ -311943,8 +301939,7 @@ "rule": [ "UserRule", { - "rule_text": - "(copy A0 A1) :- (name A0), (!), (A0 = A1), (!).", + "rule_text": "(copy A0 A1) :- (name A0), (!), (A0 = A1), (!).", "rule_loc": [ "File", { @@ -311968,13 +301963,11 @@ "rule": [ "UserRule", { - "rule_text": - "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", + "rule_text": "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 318, "column": 0, "character": 12866 @@ -311989,8 +301982,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -312009,13 +302001,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -312040,13 +302030,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -312080,8 +302068,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", + "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", "rule_loc": [ "File", { @@ -312157,13 +302144,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", + "rule_text": "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 108, "column": 0, "character": 3601 @@ -312178,8 +302163,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -312198,8 +302182,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -312294,13 +302277,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -312392,13 +302373,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -312413,13 +302392,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -312434,13 +302411,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -312455,13 +302430,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -312533,13 +302506,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -312630,13 +302601,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -312670,13 +302639,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -312710,13 +302677,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -312731,13 +302696,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -313037,13 +303000,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -313062,8 +303023,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -313088,13 +303048,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -313109,8 +303067,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -313142,8 +303099,7 @@ "Inference", { "current_goal_id": 1798, - "current_goal_text": - "name\n (app\n [global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1])", + "current_goal_text": "name\n (app\n [global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1])", "current_goal_predicate": "name", "failed_attempts": [ { "rule": [ "BuiltinRule", [ "FFI", "name" ] ], "events": [] } @@ -313160,8 +303116,7 @@ "rule": [ "UserRule", { - "rule_text": - "(copy A0 A1) :- (name A0), (!), (A0 = A1), (!).", + "rule_text": "(copy A0 A1) :- (name A0), (!), (A0 = A1), (!).", "rule_loc": [ "File", { @@ -313185,13 +303140,11 @@ "rule": [ "UserRule", { - "rule_text": - "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", + "rule_text": "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 318, "column": 0, "character": 12866 @@ -313206,8 +303159,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -313226,13 +303178,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -313257,13 +303207,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -313297,8 +303245,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", + "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", "rule_loc": [ "File", { @@ -313374,13 +303321,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", + "rule_text": "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 108, "column": 0, "character": 3601 @@ -313395,8 +303340,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -313415,8 +303359,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -313511,13 +303454,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -313609,13 +303550,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -313630,13 +303569,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -313651,13 +303588,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -313672,13 +303607,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -313750,13 +303683,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -313847,13 +303778,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -313887,13 +303816,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -313927,13 +303854,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -313948,13 +303873,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -314254,13 +304177,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -314279,8 +304200,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -314305,13 +304225,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -314326,8 +304244,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -314359,8 +304276,7 @@ "Inference", { "current_goal_id": 1791, - "current_goal_text": - "copy\n (app\n [global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1]) X239^2", + "current_goal_text": "copy\n (app\n [global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1]) X239^2", "current_goal_predicate": "copy", "failed_attempts": [], "successful_attempts": [ @@ -314369,8 +304285,7 @@ "rule": [ "UserRule", { - "rule_text": - "(copy (app A0) (app A1)) :- (!), (std.map A0 copy A1).", + "rule_text": "(copy (app A0) (app A1)) :- (!), (std.map A0 copy A1).", "rule_loc": [ "File", { @@ -314393,8 +304308,7 @@ "siblings": [ { "goal_text": "!", "goal_id": 1802 }, { - "goal_text": - "std.map\n [global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1] copy X250^2", + "goal_text": "std.map\n [global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1] copy X250^2", "goal_id": 1803 } ], @@ -314407,8 +304321,7 @@ "rule": [ "UserRule", { - "rule_text": - "(copy (app A0) (app A1)) :- (!), (std.map A0 copy A1).", + "rule_text": "(copy (app A0) (app A1)) :- (!), (std.map A0 copy A1).", "rule_loc": [ "File", { @@ -314432,13 +304345,11 @@ "rule": [ "UserRule", { - "rule_text": - "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", + "rule_text": "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 318, "column": 0, "character": 12866 @@ -314453,8 +304364,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -314473,13 +304383,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -314504,13 +304412,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -314544,8 +304450,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", + "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", "rule_loc": [ "File", { @@ -314621,13 +304526,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", + "rule_text": "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 108, "column": 0, "character": 3601 @@ -314642,8 +304545,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -314662,8 +304564,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -314758,13 +304659,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -314856,13 +304755,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -314877,13 +304774,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -314898,13 +304793,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -314919,13 +304812,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -314997,13 +304888,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -315094,13 +304983,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -315134,13 +305021,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -315174,13 +305059,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -315195,13 +305078,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -315501,13 +305382,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -315526,8 +305405,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -315552,13 +305430,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -315573,8 +305449,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -315612,8 +305487,7 @@ "Inference", { "current_goal_id": 1803, - "current_goal_text": - "std.map\n [global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1] copy X250^2", + "current_goal_text": "std.map\n [global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1] copy X250^2", "current_goal_predicate": "std.map", "failed_attempts": [], "successful_attempts": [ @@ -315622,8 +305496,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -315647,8 +305520,7 @@ }, "siblings": [ { - "goal_text": - "copy\n (global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»)) \n X251^2", + "goal_text": "copy\n (global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»)) \n X251^2", "goal_id": 1804 }, { @@ -315665,8 +305537,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -315685,8 +305556,7 @@ "rule": [ "UserRule", { - "rule_text": - "(copy (app A0) (app A1)) :- (!), (std.map A0 copy A1).", + "rule_text": "(copy (app A0) (app A1)) :- (!), (std.map A0 copy A1).", "rule_loc": [ "File", { @@ -315710,13 +305580,11 @@ "rule": [ "UserRule", { - "rule_text": - "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", + "rule_text": "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 318, "column": 0, "character": 12866 @@ -315731,8 +305599,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -315751,13 +305618,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -315782,13 +305647,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -315822,8 +305685,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", + "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", "rule_loc": [ "File", { @@ -315899,13 +305761,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", + "rule_text": "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 108, "column": 0, "character": 3601 @@ -315920,8 +305780,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -315940,8 +305799,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -316036,13 +305894,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -316134,13 +305990,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -316155,13 +306009,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -316176,13 +306028,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -316197,13 +306047,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -316275,13 +306123,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -316372,13 +306218,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -316412,13 +306256,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -316452,13 +306294,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -316473,13 +306313,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -316779,13 +306617,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -316804,8 +306640,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -316830,13 +306665,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -316851,8 +306684,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -316884,8 +306716,7 @@ "Inference", { "current_goal_id": 1804, - "current_goal_text": - "copy\n (global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»)) \n X251^2", + "current_goal_text": "copy\n (global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»)) \n X251^2", "current_goal_predicate": "copy", "failed_attempts": [], "successful_attempts": [ @@ -316894,8 +306725,7 @@ "rule": [ "UserRule", { - "rule_text": - "(copy A0 A1) :- (name A0), (!), (A0 = A1), (!).", + "rule_text": "(copy A0 A1) :- (name A0), (!), (A0 = A1), (!).", "rule_loc": [ "File", { @@ -316917,14 +306747,12 @@ }, "siblings": [ { - "goal_text": - "name\n (global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»))", + "goal_text": "name\n (global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»))", "goal_id": 1806 }, { "goal_text": "!", "goal_id": 1807 }, { - "goal_text": - "global (const «Builders_18.Builders_18_T__canonical__interleave_context_A»)\n = X251^2", + "goal_text": "global (const «Builders_18.Builders_18_T__canonical__interleave_context_A»)\n = X251^2", "goal_id": 1808 }, { "goal_text": "!", "goal_id": 1809 } @@ -316938,8 +306766,7 @@ "rule": [ "UserRule", { - "rule_text": - "(copy A0 A1) :- (name A0), (!), (A0 = A1), (!).", + "rule_text": "(copy A0 A1) :- (name A0), (!), (A0 = A1), (!).", "rule_loc": [ "File", { @@ -316958,8 +306785,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -316978,8 +306804,7 @@ "rule": [ "UserRule", { - "rule_text": - "(copy (app A0) (app A1)) :- (!), (std.map A0 copy A1).", + "rule_text": "(copy (app A0) (app A1)) :- (!), (std.map A0 copy A1).", "rule_loc": [ "File", { @@ -317003,13 +306828,11 @@ "rule": [ "UserRule", { - "rule_text": - "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", + "rule_text": "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 318, "column": 0, "character": 12866 @@ -317024,8 +306847,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -317044,13 +306866,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -317075,13 +306895,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -317115,8 +306933,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", + "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", "rule_loc": [ "File", { @@ -317192,13 +307009,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", + "rule_text": "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 108, "column": 0, "character": 3601 @@ -317213,8 +307028,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -317233,8 +307047,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -317329,13 +307142,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -317427,13 +307238,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -317448,13 +307257,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -317469,13 +307276,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -317490,13 +307295,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -317568,13 +307371,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -317665,13 +307466,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -317705,13 +307504,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -317745,13 +307542,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -317766,13 +307561,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -318072,13 +307865,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -318097,8 +307888,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -318123,13 +307913,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -318144,8 +307932,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -318177,8 +307964,7 @@ "Inference", { "current_goal_id": 1806, - "current_goal_text": - "name\n (global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»))", + "current_goal_text": "name\n (global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»))", "current_goal_predicate": "name", "failed_attempts": [ { "rule": [ "BuiltinRule", [ "FFI", "name" ] ], "events": [] } @@ -318195,8 +307981,7 @@ "rule": [ "UserRule", { - "rule_text": - "(copy A0 A1) :- (name A0), (!), (A0 = A1), (!).", + "rule_text": "(copy A0 A1) :- (name A0), (!), (A0 = A1), (!).", "rule_loc": [ "File", { @@ -318215,8 +308000,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -318235,8 +308019,7 @@ "rule": [ "UserRule", { - "rule_text": - "(copy (app A0) (app A1)) :- (!), (std.map A0 copy A1).", + "rule_text": "(copy (app A0) (app A1)) :- (!), (std.map A0 copy A1).", "rule_loc": [ "File", { @@ -318260,13 +308043,11 @@ "rule": [ "UserRule", { - "rule_text": - "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", + "rule_text": "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 318, "column": 0, "character": 12866 @@ -318281,8 +308062,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -318301,13 +308081,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -318332,13 +308110,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -318372,8 +308148,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", + "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", "rule_loc": [ "File", { @@ -318449,13 +308224,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", + "rule_text": "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 108, "column": 0, "character": 3601 @@ -318470,8 +308243,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -318490,8 +308262,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -318586,13 +308357,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -318684,13 +308453,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -318705,13 +308472,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -318726,13 +308491,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -318747,13 +308510,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -318825,13 +308586,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -318922,13 +308681,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -318962,13 +308719,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -319002,13 +308757,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -319023,13 +308776,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -319329,13 +309080,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -319354,8 +309103,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -319380,13 +309128,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -319401,8 +309147,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -319434,8 +309179,7 @@ "Inference", { "current_goal_id": 1804, - "current_goal_text": - "copy\n (global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»)) \n X251^2", + "current_goal_text": "copy\n (global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»)) \n X251^2", "current_goal_predicate": "copy", "failed_attempts": [], "successful_attempts": [ @@ -319496,8 +309240,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -319516,8 +309259,7 @@ "rule": [ "UserRule", { - "rule_text": - "(copy (app A0) (app A1)) :- (!), (std.map A0 copy A1).", + "rule_text": "(copy (app A0) (app A1)) :- (!), (std.map A0 copy A1).", "rule_loc": [ "File", { @@ -319541,13 +309283,11 @@ "rule": [ "UserRule", { - "rule_text": - "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", + "rule_text": "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 318, "column": 0, "character": 12866 @@ -319562,8 +309302,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -319582,13 +309321,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -319613,13 +309350,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -319653,8 +309388,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", + "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", "rule_loc": [ "File", { @@ -319730,13 +309464,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", + "rule_text": "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 108, "column": 0, "character": 3601 @@ -319751,8 +309483,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -319771,8 +309502,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -319867,13 +309597,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -319965,13 +309693,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -319986,13 +309712,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -320007,13 +309731,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -320028,13 +309750,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -320106,13 +309826,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -320203,13 +309921,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -320243,13 +309959,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -320283,13 +309997,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -320304,13 +310016,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -320610,13 +310320,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -320635,8 +310343,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -320661,13 +310368,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -320682,8 +310387,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -320730,8 +310434,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -320763,8 +310466,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -320783,8 +310485,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -320803,8 +310504,7 @@ "rule": [ "UserRule", { - "rule_text": - "(copy (app A0) (app A1)) :- (!), (std.map A0 copy A1).", + "rule_text": "(copy (app A0) (app A1)) :- (!), (std.map A0 copy A1).", "rule_loc": [ "File", { @@ -320828,13 +310528,11 @@ "rule": [ "UserRule", { - "rule_text": - "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", + "rule_text": "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 318, "column": 0, "character": 12866 @@ -320849,8 +310547,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -320869,13 +310566,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -320900,13 +310595,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -320940,8 +310633,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", + "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", "rule_loc": [ "File", { @@ -321017,13 +310709,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", + "rule_text": "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 108, "column": 0, "character": 3601 @@ -321038,8 +310728,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -321058,8 +310747,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -321154,13 +310842,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -321252,13 +310938,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -321273,13 +310957,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -321294,13 +310976,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -321315,13 +310995,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -321393,13 +311071,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -321490,13 +311166,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -321530,13 +311204,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -321570,13 +311242,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -321591,13 +311261,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -321897,13 +311565,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -321922,8 +311588,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -321948,13 +311613,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -321969,8 +311632,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -322011,8 +311673,7 @@ "rule": [ "UserRule", { - "rule_text": - "(copy A0 A1) :- (name A0), (!), (A0 = A1), (!).", + "rule_text": "(copy A0 A1) :- (name A0), (!), (A0 = A1), (!).", "rule_loc": [ "File", { @@ -322025,8 +311686,7 @@ } ], "events": [ - [ "Assign", "A0 := c0" ], - [ "Assign", "A1 := X253^2" ] + [ "Assign", "A0 := c0" ], [ "Assign", "A1 := X253^2" ] ] }, "siblings": [ @@ -322044,8 +311704,7 @@ "rule": [ "UserRule", { - "rule_text": - "(copy A0 A1) :- (name A0), (!), (A0 = A1), (!).", + "rule_text": "(copy A0 A1) :- (name A0), (!), (A0 = A1), (!).", "rule_loc": [ "File", { @@ -322064,8 +311723,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -322084,8 +311742,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -322104,8 +311761,7 @@ "rule": [ "UserRule", { - "rule_text": - "(copy (app A0) (app A1)) :- (!), (std.map A0 copy A1).", + "rule_text": "(copy (app A0) (app A1)) :- (!), (std.map A0 copy A1).", "rule_loc": [ "File", { @@ -322129,13 +311785,11 @@ "rule": [ "UserRule", { - "rule_text": - "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", + "rule_text": "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 318, "column": 0, "character": 12866 @@ -322150,8 +311804,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -322170,13 +311823,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -322201,13 +311852,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -322241,8 +311890,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", + "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", "rule_loc": [ "File", { @@ -322318,13 +311966,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", + "rule_text": "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 108, "column": 0, "character": 3601 @@ -322339,8 +311985,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -322359,8 +312004,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -322455,13 +312099,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -322553,13 +312195,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -322574,13 +312214,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -322595,13 +312233,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -322616,13 +312252,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -322694,13 +312328,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -322791,13 +312423,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -322831,13 +312461,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -322871,13 +312499,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -322892,13 +312518,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -323198,13 +312822,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -323223,8 +312845,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -323249,13 +312870,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -323270,8 +312889,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -323327,8 +312945,7 @@ "rule": [ "UserRule", { - "rule_text": - "(copy A0 A1) :- (name A0), (!), (A0 = A1), (!).", + "rule_text": "(copy A0 A1) :- (name A0), (!), (A0 = A1), (!).", "rule_loc": [ "File", { @@ -323347,8 +312964,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -323367,8 +312983,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -323387,8 +313002,7 @@ "rule": [ "UserRule", { - "rule_text": - "(copy (app A0) (app A1)) :- (!), (std.map A0 copy A1).", + "rule_text": "(copy (app A0) (app A1)) :- (!), (std.map A0 copy A1).", "rule_loc": [ "File", { @@ -323412,13 +313026,11 @@ "rule": [ "UserRule", { - "rule_text": - "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", + "rule_text": "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 318, "column": 0, "character": 12866 @@ -323433,8 +313045,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -323453,13 +313064,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -323484,13 +313093,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -323524,8 +313131,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", + "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", "rule_loc": [ "File", { @@ -323601,13 +313207,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", + "rule_text": "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 108, "column": 0, "character": 3601 @@ -323622,8 +313226,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -323642,8 +313245,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -323738,13 +313340,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -323836,13 +313436,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -323857,13 +313455,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -323878,13 +313474,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -323899,13 +313493,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -323977,13 +313569,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -324074,13 +313664,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -324114,13 +313702,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -324154,13 +313740,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -324175,13 +313759,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -324481,13 +314063,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -324506,8 +314086,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -324532,13 +314111,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -324553,8 +314130,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -324615,8 +314191,7 @@ "rule": [ "UserRule", { - "rule_text": - "(copy A0 A1) :- (name A0), (!), (A0 = A1), (!).", + "rule_text": "(copy A0 A1) :- (name A0), (!), (A0 = A1), (!).", "rule_loc": [ "File", { @@ -324635,8 +314210,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -324655,8 +314229,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -324675,8 +314248,7 @@ "rule": [ "UserRule", { - "rule_text": - "(copy (app A0) (app A1)) :- (!), (std.map A0 copy A1).", + "rule_text": "(copy (app A0) (app A1)) :- (!), (std.map A0 copy A1).", "rule_loc": [ "File", { @@ -324700,13 +314272,11 @@ "rule": [ "UserRule", { - "rule_text": - "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", + "rule_text": "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 318, "column": 0, "character": 12866 @@ -324721,8 +314291,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -324741,13 +314310,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -324772,13 +314339,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -324812,8 +314377,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", + "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", "rule_loc": [ "File", { @@ -324889,13 +314453,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", + "rule_text": "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 108, "column": 0, "character": 3601 @@ -324910,8 +314472,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -324930,8 +314491,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -325026,13 +314586,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -325124,13 +314682,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -325145,13 +314701,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -325166,13 +314720,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -325187,13 +314739,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -325265,13 +314815,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -325362,13 +314910,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -325402,13 +314948,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -325442,13 +314986,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -325463,13 +315005,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -325769,13 +315309,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -325794,8 +315332,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -325820,13 +315357,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -325841,8 +315376,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -325904,8 +315438,7 @@ "rule": [ "UserRule", { - "rule_text": - "(copy A0 A1) :- (name A0), (!), (A0 = A1), (!).", + "rule_text": "(copy A0 A1) :- (name A0), (!), (A0 = A1), (!).", "rule_loc": [ "File", { @@ -325924,8 +315457,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -325944,8 +315476,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -325964,8 +315495,7 @@ "rule": [ "UserRule", { - "rule_text": - "(copy (app A0) (app A1)) :- (!), (std.map A0 copy A1).", + "rule_text": "(copy (app A0) (app A1)) :- (!), (std.map A0 copy A1).", "rule_loc": [ "File", { @@ -325989,13 +315519,11 @@ "rule": [ "UserRule", { - "rule_text": - "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", + "rule_text": "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 318, "column": 0, "character": 12866 @@ -326010,8 +315538,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -326030,13 +315557,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -326061,13 +315586,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -326101,8 +315624,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", + "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", "rule_loc": [ "File", { @@ -326178,13 +315700,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", + "rule_text": "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 108, "column": 0, "character": 3601 @@ -326199,8 +315719,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -326219,8 +315738,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -326315,13 +315833,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -326413,13 +315929,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -326434,13 +315948,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -326455,13 +315967,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -326476,13 +315986,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -326554,13 +316062,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -326651,13 +316157,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -326691,13 +316195,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -326731,13 +316233,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -326752,13 +316252,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -327058,13 +316556,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -327083,8 +316579,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -327109,13 +316604,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -327130,8 +316623,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -327178,8 +316670,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -327211,8 +316702,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -327231,8 +316721,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -327251,8 +316740,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -327271,8 +316759,7 @@ "rule": [ "UserRule", { - "rule_text": - "(copy (app A0) (app A1)) :- (!), (std.map A0 copy A1).", + "rule_text": "(copy (app A0) (app A1)) :- (!), (std.map A0 copy A1).", "rule_loc": [ "File", { @@ -327296,13 +316783,11 @@ "rule": [ "UserRule", { - "rule_text": - "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", + "rule_text": "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 318, "column": 0, "character": 12866 @@ -327317,8 +316802,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -327337,13 +316821,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -327368,13 +316850,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -327408,8 +316888,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", + "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", "rule_loc": [ "File", { @@ -327485,13 +316964,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", + "rule_text": "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 108, "column": 0, "character": 3601 @@ -327506,8 +316983,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -327526,8 +317002,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -327622,13 +317097,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -327720,13 +317193,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -327741,13 +317212,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -327762,13 +317231,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -327783,13 +317250,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -327861,13 +317326,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -327958,13 +317421,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -327998,13 +317459,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -328038,13 +317497,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -328059,13 +317516,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -328365,13 +317820,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -328390,8 +317843,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -328416,13 +317868,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -328437,8 +317887,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -328479,8 +317928,7 @@ "rule": [ "UserRule", { - "rule_text": - "(copy A0 A1) :- (name A0), (!), (A0 = A1), (!).", + "rule_text": "(copy A0 A1) :- (name A0), (!), (A0 = A1), (!).", "rule_loc": [ "File", { @@ -328493,8 +317941,7 @@ } ], "events": [ - [ "Assign", "A0 := c1" ], - [ "Assign", "A1 := X255^2" ] + [ "Assign", "A0 := c1" ], [ "Assign", "A1 := X255^2" ] ] }, "siblings": [ @@ -328512,8 +317959,7 @@ "rule": [ "UserRule", { - "rule_text": - "(copy A0 A1) :- (name A0), (!), (A0 = A1), (!).", + "rule_text": "(copy A0 A1) :- (name A0), (!), (A0 = A1), (!).", "rule_loc": [ "File", { @@ -328532,8 +317978,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -328552,8 +317997,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -328572,8 +318016,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -328592,8 +318035,7 @@ "rule": [ "UserRule", { - "rule_text": - "(copy (app A0) (app A1)) :- (!), (std.map A0 copy A1).", + "rule_text": "(copy (app A0) (app A1)) :- (!), (std.map A0 copy A1).", "rule_loc": [ "File", { @@ -328617,13 +318059,11 @@ "rule": [ "UserRule", { - "rule_text": - "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", + "rule_text": "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 318, "column": 0, "character": 12866 @@ -328638,8 +318078,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -328658,13 +318097,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -328689,13 +318126,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -328729,8 +318164,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", + "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", "rule_loc": [ "File", { @@ -328806,13 +318240,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", + "rule_text": "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 108, "column": 0, "character": 3601 @@ -328827,8 +318259,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -328847,8 +318278,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -328943,13 +318373,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -329041,13 +318469,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -329062,13 +318488,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -329083,13 +318507,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -329104,13 +318526,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -329182,13 +318602,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -329279,13 +318697,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -329319,13 +318735,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -329359,13 +318773,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -329380,13 +318792,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -329686,13 +319096,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -329711,8 +319119,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -329737,13 +319144,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -329758,8 +319163,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -329815,8 +319219,7 @@ "rule": [ "UserRule", { - "rule_text": - "(copy A0 A1) :- (name A0), (!), (A0 = A1), (!).", + "rule_text": "(copy A0 A1) :- (name A0), (!), (A0 = A1), (!).", "rule_loc": [ "File", { @@ -329835,8 +319238,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -329855,8 +319257,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -329875,8 +319276,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -329895,8 +319295,7 @@ "rule": [ "UserRule", { - "rule_text": - "(copy (app A0) (app A1)) :- (!), (std.map A0 copy A1).", + "rule_text": "(copy (app A0) (app A1)) :- (!), (std.map A0 copy A1).", "rule_loc": [ "File", { @@ -329920,13 +319319,11 @@ "rule": [ "UserRule", { - "rule_text": - "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", + "rule_text": "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 318, "column": 0, "character": 12866 @@ -329941,8 +319338,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -329961,13 +319357,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -329992,13 +319386,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -330032,8 +319424,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", + "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", "rule_loc": [ "File", { @@ -330109,13 +319500,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", + "rule_text": "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 108, "column": 0, "character": 3601 @@ -330130,8 +319519,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -330150,8 +319538,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -330246,13 +319633,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -330344,13 +319729,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -330365,13 +319748,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -330386,13 +319767,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -330407,13 +319786,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -330485,13 +319862,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -330582,13 +319957,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -330622,13 +319995,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -330662,13 +320033,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -330683,13 +320052,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -330989,13 +320356,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -331014,8 +320379,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -331040,13 +320404,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -331061,8 +320423,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -331123,8 +320484,7 @@ "rule": [ "UserRule", { - "rule_text": - "(copy A0 A1) :- (name A0), (!), (A0 = A1), (!).", + "rule_text": "(copy A0 A1) :- (name A0), (!), (A0 = A1), (!).", "rule_loc": [ "File", { @@ -331143,8 +320503,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -331163,8 +320522,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -331183,8 +320541,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -331203,8 +320560,7 @@ "rule": [ "UserRule", { - "rule_text": - "(copy (app A0) (app A1)) :- (!), (std.map A0 copy A1).", + "rule_text": "(copy (app A0) (app A1)) :- (!), (std.map A0 copy A1).", "rule_loc": [ "File", { @@ -331228,13 +320584,11 @@ "rule": [ "UserRule", { - "rule_text": - "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", + "rule_text": "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 318, "column": 0, "character": 12866 @@ -331249,8 +320603,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -331269,13 +320622,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -331300,13 +320651,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -331340,8 +320689,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", + "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", "rule_loc": [ "File", { @@ -331417,13 +320765,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", + "rule_text": "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 108, "column": 0, "character": 3601 @@ -331438,8 +320784,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -331458,8 +320803,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -331554,13 +320898,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -331652,13 +320994,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -331673,13 +321013,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -331694,13 +321032,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -331715,13 +321051,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -331793,13 +321127,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -331890,13 +321222,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -331930,13 +321260,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -331970,13 +321298,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -331991,13 +321317,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -332297,13 +321621,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -332322,8 +321644,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -332348,13 +321669,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -332369,8 +321688,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -332432,8 +321750,7 @@ "rule": [ "UserRule", { - "rule_text": - "(copy A0 A1) :- (name A0), (!), (A0 = A1), (!).", + "rule_text": "(copy A0 A1) :- (name A0), (!), (A0 = A1), (!).", "rule_loc": [ "File", { @@ -332452,8 +321769,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -332472,8 +321788,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -332492,8 +321807,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -332512,8 +321826,7 @@ "rule": [ "UserRule", { - "rule_text": - "(copy (app A0) (app A1)) :- (!), (std.map A0 copy A1).", + "rule_text": "(copy (app A0) (app A1)) :- (!), (std.map A0 copy A1).", "rule_loc": [ "File", { @@ -332537,13 +321850,11 @@ "rule": [ "UserRule", { - "rule_text": - "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", + "rule_text": "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 318, "column": 0, "character": 12866 @@ -332558,8 +321869,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -332578,13 +321888,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -332609,13 +321917,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -332649,8 +321955,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", + "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", "rule_loc": [ "File", { @@ -332726,13 +322031,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", + "rule_text": "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 108, "column": 0, "character": 3601 @@ -332747,8 +322050,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -332767,8 +322069,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -332863,13 +322164,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -332961,13 +322260,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -332982,13 +322279,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -333003,13 +322298,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -333024,13 +322317,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -333102,13 +322393,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -333199,13 +322488,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -333239,13 +322526,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -333279,13 +322564,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -333300,13 +322583,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -333606,13 +322887,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -333631,8 +322910,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -333657,13 +322935,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -333678,8 +322954,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -333769,8 +323044,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -333789,8 +323063,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -333809,8 +323082,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -333829,8 +323101,7 @@ "rule": [ "UserRule", { - "rule_text": - "(copy (app A0) (app A1)) :- (!), (std.map A0 copy A1).", + "rule_text": "(copy (app A0) (app A1)) :- (!), (std.map A0 copy A1).", "rule_loc": [ "File", { @@ -333854,13 +323125,11 @@ "rule": [ "UserRule", { - "rule_text": - "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", + "rule_text": "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 318, "column": 0, "character": 12866 @@ -333875,8 +323144,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -333895,13 +323163,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -333926,13 +323192,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -333966,8 +323230,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", + "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", "rule_loc": [ "File", { @@ -334043,13 +323306,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", + "rule_text": "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 108, "column": 0, "character": 3601 @@ -334064,8 +323325,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -334084,8 +323344,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -334180,13 +323439,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -334278,13 +323535,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -334299,13 +323554,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -334320,13 +323573,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -334341,13 +323592,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -334419,13 +323668,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -334516,13 +323763,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -334556,13 +323801,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -334596,13 +323839,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -334617,13 +323858,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -334923,13 +324162,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -334948,8 +324185,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -334974,13 +324210,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -334995,8 +324229,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -335037,8 +324270,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -335076,8 +324308,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -335096,8 +324327,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -335116,13 +324346,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -335147,13 +324375,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -335187,8 +324413,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", + "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", "rule_loc": [ "File", { @@ -335264,13 +324489,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", + "rule_text": "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 108, "column": 0, "character": 3601 @@ -335285,8 +324508,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -335305,8 +324527,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -335401,13 +324622,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -335499,13 +324718,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -335520,13 +324737,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -335541,13 +324756,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -335562,13 +324775,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -335640,13 +324851,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -335737,13 +324946,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -335777,13 +324984,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -335817,13 +325022,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -335838,13 +325041,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -336144,13 +325345,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -336169,8 +325368,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -336195,13 +325393,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -336216,8 +325412,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -336258,13 +325453,11 @@ "rule": [ "UserRule", { - "rule_text": - "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", + "rule_text": "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 318, "column": 0, "character": 12866 @@ -336288,8 +325481,7 @@ "goal_id": 1828 }, { - "goal_text": - "[pi c2 \\\n pi c3 \\\n pi c4 \\\n pi c5 \\\n pi c6 \\\n pi c7 \\\n copy (app [global c7 | c2]) (app [global c7 | c3]) :-\n , (pack? c7 _) (!) (std.rev c2 [c4, c0 | c5]) (copy c0 X261^2) \n (std.map c5 copy c6) \n (std.rev [global (const «elpi.hole»), X261^2 | c6] c3) | X260^2]\n => copy c0 X257^2", + "goal_text": "[pi c2 \\\n pi c3 \\\n pi c4 \\\n pi c5 \\\n pi c6 \\\n pi c7 \\\n copy (app [global c7 | c2]) (app [global c7 | c3]) :-\n , (pack? c7 _) (!) (std.rev c2 [c4, c0 | c5]) (copy c0 X261^2) \n (std.map c5 copy c6) \n (std.rev [global (const «elpi.hole»), X261^2 | c6] c3) | X260^2]\n => copy c0 X257^2", "goal_id": 1829 } ], @@ -336302,13 +325494,11 @@ "rule": [ "UserRule", { - "rule_text": - "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", + "rule_text": "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 318, "column": 0, "character": 12866 @@ -336323,8 +325513,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -336343,8 +325532,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -336363,13 +325551,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -336394,13 +325580,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -336434,8 +325618,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", + "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", "rule_loc": [ "File", { @@ -336511,13 +325694,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", + "rule_text": "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 108, "column": 0, "character": 3601 @@ -336532,8 +325713,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -336552,8 +325732,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -336648,13 +325827,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -336746,13 +325923,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -336767,13 +325942,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -336788,13 +325961,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -336809,13 +325980,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -336887,13 +326056,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -336984,13 +326151,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -337024,13 +326189,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -337064,13 +326227,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -337085,13 +326246,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -337391,13 +326550,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -337416,8 +326573,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -337442,13 +326598,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -337463,8 +326617,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -337505,13 +326658,11 @@ "rule": [ "UserRule", { - "rule_text": - "(findall-local-canonical A0) :- (std.findall (local-canonical A1) A2), \n (std.map A2 local-canonical-gref A0).", + "rule_text": "(findall-local-canonical A0) :- (std.findall (local-canonical A1) A2), \n (std.map A2 local-canonical-gref A0).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 200, "column": 0, "character": 7260 @@ -337540,13 +326691,11 @@ "rule": [ "UserRule", { - "rule_text": - "(findall-local-canonical A0) :- (std.findall (local-canonical A1) A2), \n (std.map A2 local-canonical-gref A0).", + "rule_text": "(findall-local-canonical A0) :- (std.findall (local-canonical A1) A2), \n (std.map A2 local-canonical-gref A0).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 200, "column": 0, "character": 7260 @@ -337561,13 +326710,11 @@ "rule": [ "UserRule", { - "rule_text": - "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", + "rule_text": "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 318, "column": 0, "character": 12866 @@ -337582,8 +326729,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -337602,8 +326748,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -337622,13 +326767,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -337653,13 +326796,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -337693,8 +326834,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", + "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", "rule_loc": [ "File", { @@ -337770,13 +326910,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", + "rule_text": "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 108, "column": 0, "character": 3601 @@ -337791,8 +326929,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -337811,8 +326948,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -337907,13 +327043,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -338005,13 +327139,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -338026,13 +327158,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -338047,13 +327177,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -338068,13 +327196,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -338146,13 +327272,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -338243,13 +327367,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -338283,13 +327405,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -338323,13 +327443,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -338344,13 +327462,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -338650,13 +327766,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -338675,8 +327789,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -338701,13 +327814,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -338722,8 +327833,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -338764,8 +327874,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.findall A0 A1) :- (findall_solutions A0 A1).", + "rule_text": "(std.findall A0 A1) :- (findall_solutions A0 A1).", "rule_loc": [ "File", { @@ -338784,8 +327893,7 @@ }, "siblings": [ { - "goal_text": - "findall_solutions (local-canonical X262^2) X263^2", + "goal_text": "findall_solutions (local-canonical X262^2) X263^2", "goal_id": 1832 } ], @@ -338798,8 +327906,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.findall A0 A1) :- (findall_solutions A0 A1).", + "rule_text": "(std.findall A0 A1) :- (findall_solutions A0 A1).", "rule_loc": [ "File", { @@ -338818,13 +327925,11 @@ "rule": [ "UserRule", { - "rule_text": - "(findall-local-canonical A0) :- (std.findall (local-canonical A1) A2), \n (std.map A2 local-canonical-gref A0).", + "rule_text": "(findall-local-canonical A0) :- (std.findall (local-canonical A1) A2), \n (std.map A2 local-canonical-gref A0).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 200, "column": 0, "character": 7260 @@ -338839,13 +327944,11 @@ "rule": [ "UserRule", { - "rule_text": - "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", + "rule_text": "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 318, "column": 0, "character": 12866 @@ -338860,8 +327963,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -338880,8 +327982,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -338900,13 +328001,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -338931,13 +328030,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -338971,8 +328068,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", + "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", "rule_loc": [ "File", { @@ -339048,13 +328144,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", + "rule_text": "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 108, "column": 0, "character": 3601 @@ -339069,8 +328163,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -339089,8 +328182,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -339185,13 +328277,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -339283,13 +328373,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -339304,13 +328392,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -339325,13 +328411,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -339346,13 +328430,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -339424,13 +328506,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -339521,13 +328601,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -339561,13 +328639,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -339601,13 +328677,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -339622,13 +328696,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -339928,13 +329000,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -339953,8 +329023,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -339979,13 +329048,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -340000,8 +329067,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -340033,8 +329099,7 @@ "Findall", { "findall_goal_id": 1832, - "findall_goal_text": - "findall_solutions (local-canonical X262^2) X263^2", + "findall_goal_text": "findall_solutions (local-canonical X262^2) X263^2", "findall_cards": [ { "step_id": 0, @@ -340074,8 +329139,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.findall A0 A1) :- (findall_solutions A0 A1).", + "rule_text": "(std.findall A0 A1) :- (findall_solutions A0 A1).", "rule_loc": [ "File", { @@ -340094,13 +329158,11 @@ "rule": [ "UserRule", { - "rule_text": - "(findall-local-canonical A0) :- (std.findall (local-canonical A1) A2), \n (std.map A2 local-canonical-gref A0).", + "rule_text": "(findall-local-canonical A0) :- (std.findall (local-canonical A1) A2), \n (std.map A2 local-canonical-gref A0).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 200, "column": 0, "character": 7260 @@ -340115,13 +329177,11 @@ "rule": [ "UserRule", { - "rule_text": - "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", + "rule_text": "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 318, "column": 0, "character": 12866 @@ -340136,8 +329196,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -340156,8 +329215,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -340176,13 +329234,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -340207,13 +329263,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -340247,8 +329301,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", + "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", "rule_loc": [ "File", { @@ -340324,13 +329377,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", + "rule_text": "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 108, "column": 0, "character": 3601 @@ -340345,8 +329396,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -340365,8 +329415,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -340461,13 +329510,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -340559,13 +329606,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -340580,13 +329625,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -340601,13 +329644,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -340622,13 +329663,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -340700,13 +329739,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -340797,13 +329834,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -340837,13 +329872,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -340877,13 +329910,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -340898,13 +329929,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -341204,13 +330233,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -341229,8 +330256,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -341255,13 +330281,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -341276,8 +330300,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -341361,13 +330384,11 @@ "rule": [ "UserRule", { - "rule_text": - "(findall-local-canonical A0) :- (std.findall (local-canonical A1) A2), \n (std.map A2 local-canonical-gref A0).", + "rule_text": "(findall-local-canonical A0) :- (std.findall (local-canonical A1) A2), \n (std.map A2 local-canonical-gref A0).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 200, "column": 0, "character": 7260 @@ -341382,13 +330403,11 @@ "rule": [ "UserRule", { - "rule_text": - "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", + "rule_text": "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 318, "column": 0, "character": 12866 @@ -341403,8 +330422,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -341423,8 +330441,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -341443,13 +330460,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -341474,13 +330489,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -341514,8 +330527,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", + "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", "rule_loc": [ "File", { @@ -341591,13 +330603,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", + "rule_text": "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 108, "column": 0, "character": 3601 @@ -341612,8 +330622,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -341632,8 +330641,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -341728,13 +330736,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -341826,13 +330832,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -341847,13 +330851,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -341868,13 +330870,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -341889,13 +330889,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -341967,13 +330965,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -342064,13 +331060,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -342104,13 +331098,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -342144,13 +331136,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -342165,13 +331155,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -342471,13 +331459,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -342496,8 +331482,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -342522,13 +331507,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -342543,8 +331526,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -342589,8 +331571,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/stdpp.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/stdpp.elpi", "line": 196, "column": 0, "character": 7411 @@ -342614,8 +331595,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/stdpp.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/stdpp.elpi", "line": 196, "column": 0, "character": 7411 @@ -342630,13 +331610,11 @@ "rule": [ "UserRule", { - "rule_text": - "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", + "rule_text": "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 318, "column": 0, "character": 12866 @@ -342651,8 +331629,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -342671,8 +331648,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -342691,13 +331667,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -342722,13 +331696,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -342762,8 +331734,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", + "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", "rule_loc": [ "File", { @@ -342839,13 +331810,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", + "rule_text": "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 108, "column": 0, "character": 3601 @@ -342860,8 +331829,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -342880,8 +331848,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -342976,13 +331943,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -343074,13 +332039,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -343095,13 +332058,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -343116,13 +332077,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -343137,13 +332096,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -343215,13 +332172,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -343312,13 +332267,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -343352,13 +332305,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -343392,13 +332343,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -343413,13 +332362,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -343719,13 +332666,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -343744,8 +332689,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -343770,13 +332714,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -343791,8 +332733,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -343824,8 +332765,7 @@ "Inference", { "current_goal_id": 1829, - "current_goal_text": - "[pi c2 \\\n pi c3 \\\n pi c4 \\\n pi c5 \\\n pi c6 \\\n pi c7 \\\n copy (app [global c7 | c2]) (app [global c7 | c3]) :-\n , (pack? c7 _) (!) (std.rev c2 [c4, c0 | c5]) (copy c0 X261^2) \n (std.map c5 copy c6) \n (std.rev [global (const «elpi.hole»), X261^2 | c6] c3)] =>\n copy c0 X257^2", + "current_goal_text": "[pi c2 \\\n pi c3 \\\n pi c4 \\\n pi c5 \\\n pi c6 \\\n pi c7 \\\n copy (app [global c7 | c2]) (app [global c7 | c3]) :-\n , (pack? c7 _) (!) (std.rev c2 [c4, c0 | c5]) (copy c0 X261^2) \n (std.map c5 copy c6) \n (std.rev [global (const «elpi.hole»), X261^2 | c6] c3)] =>\n copy c0 X257^2", "current_goal_predicate": "=>", "failed_attempts": [], "successful_attempts": [ @@ -343851,13 +332791,11 @@ "rule": [ "UserRule", { - "rule_text": - "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", + "rule_text": "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 318, "column": 0, "character": 12866 @@ -343872,8 +332810,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -343892,8 +332829,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -343912,13 +332848,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -343943,13 +332877,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -343983,8 +332915,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", + "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", "rule_loc": [ "File", { @@ -344060,13 +332991,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", + "rule_text": "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 108, "column": 0, "character": 3601 @@ -344081,8 +333010,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -344101,8 +333029,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -344197,13 +333124,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -344295,13 +333220,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -344316,13 +333239,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -344337,13 +333258,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -344358,13 +333277,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -344436,13 +333353,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -344533,13 +333448,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -344573,13 +333486,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -344613,13 +333524,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -344634,13 +333543,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -344940,13 +333847,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -344965,8 +333870,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -344991,13 +333895,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -345012,8 +333914,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -345054,8 +333955,7 @@ "rule": [ "UserRule", { - "rule_text": - "(copy A0 A1) :- (name A0), (!), (A0 = A1), (!).", + "rule_text": "(copy A0 A1) :- (name A0), (!), (A0 = A1), (!).", "rule_loc": [ "File", { @@ -345068,8 +333968,7 @@ } ], "events": [ - [ "Assign", "A0 := c0" ], - [ "Assign", "A1 := X257^2" ] + [ "Assign", "A0 := c0" ], [ "Assign", "A1 := X257^2" ] ] }, "siblings": [ @@ -345087,8 +333986,7 @@ "rule": [ "UserRule", { - "rule_text": - "(copy A0 A1) :- (name A0), (!), (A0 = A1), (!).", + "rule_text": "(copy A0 A1) :- (name A0), (!), (A0 = A1), (!).", "rule_loc": [ "File", { @@ -345112,13 +334010,11 @@ "rule": [ "UserRule", { - "rule_text": - "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", + "rule_text": "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 318, "column": 0, "character": 12866 @@ -345133,8 +334029,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -345153,8 +334048,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -345173,13 +334067,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -345204,13 +334096,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -345244,8 +334134,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", + "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", "rule_loc": [ "File", { @@ -345321,13 +334210,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", + "rule_text": "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 108, "column": 0, "character": 3601 @@ -345342,8 +334229,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -345362,8 +334248,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -345458,13 +334343,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -345556,13 +334439,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -345577,13 +334458,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -345598,13 +334477,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -345619,13 +334496,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -345697,13 +334572,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -345794,13 +334667,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -345834,13 +334705,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -345874,13 +334743,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -345895,13 +334762,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -346201,13 +335066,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -346226,8 +335089,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -346252,13 +335114,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -346273,8 +335133,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -346330,8 +335189,7 @@ "rule": [ "UserRule", { - "rule_text": - "(copy A0 A1) :- (name A0), (!), (A0 = A1), (!).", + "rule_text": "(copy A0 A1) :- (name A0), (!), (A0 = A1), (!).", "rule_loc": [ "File", { @@ -346355,13 +335213,11 @@ "rule": [ "UserRule", { - "rule_text": - "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", + "rule_text": "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 318, "column": 0, "character": 12866 @@ -346376,8 +335232,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -346396,8 +335251,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -346416,13 +335270,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -346447,13 +335299,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -346487,8 +335337,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", + "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", "rule_loc": [ "File", { @@ -346564,13 +335413,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", + "rule_text": "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 108, "column": 0, "character": 3601 @@ -346585,8 +335432,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -346605,8 +335451,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -346701,13 +335546,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -346799,13 +335642,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -346820,13 +335661,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -346841,13 +335680,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -346862,13 +335699,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -346940,13 +335775,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -347037,13 +335870,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -347077,13 +335908,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -347117,13 +335946,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -347138,13 +335965,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -347444,13 +336269,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -347469,8 +336292,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -347495,13 +336317,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -347516,8 +336336,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -347578,8 +336397,7 @@ "rule": [ "UserRule", { - "rule_text": - "(copy A0 A1) :- (name A0), (!), (A0 = A1), (!).", + "rule_text": "(copy A0 A1) :- (name A0), (!), (A0 = A1), (!).", "rule_loc": [ "File", { @@ -347603,13 +336421,11 @@ "rule": [ "UserRule", { - "rule_text": - "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", + "rule_text": "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 318, "column": 0, "character": 12866 @@ -347624,8 +336440,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -347644,8 +336459,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -347664,13 +336478,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -347695,13 +336507,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -347735,8 +336545,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", + "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", "rule_loc": [ "File", { @@ -347812,13 +336621,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", + "rule_text": "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 108, "column": 0, "character": 3601 @@ -347833,8 +336640,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -347853,8 +336659,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -347949,13 +336754,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -348047,13 +336850,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -348068,13 +336869,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -348089,13 +336888,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -348110,13 +336907,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -348188,13 +336983,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -348285,13 +337078,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -348325,13 +337116,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -348365,13 +337154,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -348386,13 +337173,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -348692,13 +337477,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -348717,8 +337500,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -348743,13 +337525,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -348764,8 +337544,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -348827,8 +337606,7 @@ "rule": [ "UserRule", { - "rule_text": - "(copy A0 A1) :- (name A0), (!), (A0 = A1), (!).", + "rule_text": "(copy A0 A1) :- (name A0), (!), (A0 = A1), (!).", "rule_loc": [ "File", { @@ -348852,13 +337630,11 @@ "rule": [ "UserRule", { - "rule_text": - "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", + "rule_text": "(copy-pack-holes A0 A1 A2) :- (findall-local-canonical A3), \n (coq.copy-clauses-for-unfold A3 A4), \n ([pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (copy (app [global c5 | c0]) (app [global c5 | c1]) :-\n , (pack? c5 _) (!) (std.rev c0 [c2, A0 | c3]) (copy A0 A5) \n (std.map c3 copy c4) \n (std.rev [global (const «elpi.hole»), A5 | c4] c1))))))))))))) | A4]\n => copy A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 318, "column": 0, "character": 12866 @@ -348873,8 +337649,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -348893,8 +337668,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -348913,13 +337687,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -348944,13 +337716,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -348984,8 +337754,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", + "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", "rule_loc": [ "File", { @@ -349061,13 +337830,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", + "rule_text": "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 108, "column": 0, "character": 3601 @@ -349082,8 +337849,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -349102,8 +337868,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -349198,13 +337963,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -349296,13 +338059,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -349317,13 +338078,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -349338,13 +338097,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -349359,13 +338116,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -349437,13 +338192,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -349534,13 +338287,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -349574,13 +338325,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -349614,13 +338363,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -349635,13 +338382,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -349941,13 +338686,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -349966,8 +338709,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -349992,13 +338734,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -350013,8 +338753,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -350104,8 +338843,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -350124,8 +338862,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", + "rule_text": "(std.map [A0 | A1] A2 [A3 | A4]) :- (A2 A0 A3), (std.map A1 A2 A4).", "rule_loc": [ "File", { @@ -350144,13 +338881,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -350175,13 +338910,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -350215,8 +338948,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", + "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", "rule_loc": [ "File", { @@ -350292,13 +339024,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", + "rule_text": "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 108, "column": 0, "character": 3601 @@ -350313,8 +339043,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -350333,8 +339062,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -350429,13 +339157,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -350527,13 +339253,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -350548,13 +339272,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -350569,13 +339291,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -350590,13 +339310,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -350668,13 +339386,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -350765,13 +339481,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -350805,13 +339519,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -350845,13 +339557,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -350866,13 +339576,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -351172,13 +339880,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -351197,8 +339903,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -351223,13 +339928,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -351244,8 +339947,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -351277,8 +339979,7 @@ "Inference", { "current_goal_id": 1776, - "current_goal_text": - "std.spy\n (std.take 1 \n [app\n [global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1], c0] X230^1)", + "current_goal_text": "std.spy\n (std.take 1 \n [app\n [global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1], c0] X230^1)", "current_goal_predicate": "std.spy", "failed_attempts": [], "successful_attempts": [ @@ -351287,8 +339988,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.spy A0) :- (trace.counter run A1), \n (if (not (A1 = 0)) (std.debug-print run= A1) true), \n (std.debug-print ----<<---- enter: A0), A0, \n (std.debug-print ---->>---- exit: A0).", + "rule_text": "(std.spy A0) :- (trace.counter run A1), \n (if (not (A1 = 0)) (std.debug-print run= A1) true), \n (std.debug-print ----<<---- enter: A0), A0, \n (std.debug-print ---->>---- exit: A0).", "rule_loc": [ "File", { @@ -351310,23 +340010,19 @@ "siblings": [ { "goal_text": "trace.counter run X264^2", "goal_id": 1841 }, { - "goal_text": - "if (not (X264^2 = 0)) (std.debug-print run= X264^2) true", + "goal_text": "if (not (X264^2 = 0)) (std.debug-print run= X264^2) true", "goal_id": 1842 }, { - "goal_text": - "std.debug-print ----<<---- enter: \n (std.take 1 \n [app\n [global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1], c0] X230^1)", + "goal_text": "std.debug-print ----<<---- enter: \n (std.take 1 \n [app\n [global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1], c0] X230^1)", "goal_id": 1843 }, { - "goal_text": - "std.take 1 \n [app\n [global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1], c0] X230^1", + "goal_text": "std.take 1 \n [app\n [global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1], c0] X230^1", "goal_id": 1844 }, { - "goal_text": - "std.debug-print ---->>---- exit: \n (std.take 1 \n [app\n [global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1], c0] X230^1)", + "goal_text": "std.debug-print ---->>---- exit: \n (std.take 1 \n [app\n [global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1], c0] X230^1)", "goal_id": 1845 } ], @@ -351339,8 +340035,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.spy A0) :- (trace.counter run A1), \n (if (not (A1 = 0)) (std.debug-print run= A1) true), \n (std.debug-print ----<<---- enter: A0), A0, \n (std.debug-print ---->>---- exit: A0).", + "rule_text": "(std.spy A0) :- (trace.counter run A1), \n (if (not (A1 = 0)) (std.debug-print run= A1) true), \n (std.debug-print ----<<---- enter: A0), A0, \n (std.debug-print ---->>---- exit: A0).", "rule_loc": [ "File", { @@ -351359,13 +340054,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -351390,13 +340083,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -351430,8 +340121,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", + "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", "rule_loc": [ "File", { @@ -351507,13 +340197,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", + "rule_text": "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 108, "column": 0, "character": 3601 @@ -351528,8 +340216,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -351548,8 +340235,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -351644,13 +340330,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -351742,13 +340426,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -351763,13 +340445,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -351784,13 +340464,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -351805,13 +340483,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -351883,13 +340559,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -351980,13 +340654,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -352020,13 +340692,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -352060,13 +340730,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -352081,13 +340749,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -352387,13 +341053,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -352412,8 +341076,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -352438,13 +341101,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -352459,8 +341120,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -352516,8 +341176,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.spy A0) :- (trace.counter run A1), \n (if (not (A1 = 0)) (std.debug-print run= A1) true), \n (std.debug-print ----<<---- enter: A0), A0, \n (std.debug-print ---->>---- exit: A0).", + "rule_text": "(std.spy A0) :- (trace.counter run A1), \n (if (not (A1 = 0)) (std.debug-print run= A1) true), \n (std.debug-print ----<<---- enter: A0), A0, \n (std.debug-print ---->>---- exit: A0).", "rule_loc": [ "File", { @@ -352536,13 +341195,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -352567,13 +341224,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -352607,8 +341262,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", + "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", "rule_loc": [ "File", { @@ -352684,13 +341338,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", + "rule_text": "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 108, "column": 0, "character": 3601 @@ -352705,8 +341357,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -352725,8 +341376,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -352821,13 +341471,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -352919,13 +341567,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -352940,13 +341586,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -352961,13 +341605,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -352982,13 +341624,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -353060,13 +341700,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -353157,13 +341795,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -353197,13 +341833,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -353237,13 +341871,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -353258,13 +341890,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -353564,13 +342194,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -353589,8 +342217,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -353615,13 +342242,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -353636,8 +342261,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -353698,8 +342322,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.spy A0) :- (trace.counter run A1), \n (if (not (A1 = 0)) (std.debug-print run= A1) true), \n (std.debug-print ----<<---- enter: A0), A0, \n (std.debug-print ---->>---- exit: A0).", + "rule_text": "(std.spy A0) :- (trace.counter run A1), \n (if (not (A1 = 0)) (std.debug-print run= A1) true), \n (std.debug-print ----<<---- enter: A0), A0, \n (std.debug-print ---->>---- exit: A0).", "rule_loc": [ "File", { @@ -353718,13 +342341,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -353749,13 +342370,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -353789,8 +342408,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", + "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", "rule_loc": [ "File", { @@ -353866,13 +342484,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", + "rule_text": "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 108, "column": 0, "character": 3601 @@ -353887,8 +342503,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -353907,8 +342522,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -354003,13 +342617,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -354101,13 +342713,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -354122,13 +342732,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -354143,13 +342751,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -354164,13 +342770,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -354242,13 +342846,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -354339,13 +342941,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -354379,13 +342979,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -354419,13 +343017,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -354440,13 +343036,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -354746,13 +343340,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -354771,8 +343363,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -354797,13 +343388,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -354818,8 +343407,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -354910,8 +343498,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.spy A0) :- (trace.counter run A1), \n (if (not (A1 = 0)) (std.debug-print run= A1) true), \n (std.debug-print ----<<---- enter: A0), A0, \n (std.debug-print ---->>---- exit: A0).", + "rule_text": "(std.spy A0) :- (trace.counter run A1), \n (if (not (A1 = 0)) (std.debug-print run= A1) true), \n (std.debug-print ----<<---- enter: A0), A0, \n (std.debug-print ---->>---- exit: A0).", "rule_loc": [ "File", { @@ -354930,13 +343517,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -354961,13 +343546,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -355001,8 +343584,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", + "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", "rule_loc": [ "File", { @@ -355078,13 +343660,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", + "rule_text": "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 108, "column": 0, "character": 3601 @@ -355099,8 +343679,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -355119,8 +343698,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -355215,13 +343793,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -355313,13 +343889,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -355334,13 +343908,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -355355,13 +343927,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -355376,13 +343946,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -355454,13 +344022,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -355551,13 +344117,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -355591,13 +344155,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -355631,13 +344193,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -355652,13 +344212,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -355958,13 +344516,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -355983,8 +344539,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -356009,13 +344564,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -356030,8 +344583,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -356138,8 +344690,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.spy A0) :- (trace.counter run A1), \n (if (not (A1 = 0)) (std.debug-print run= A1) true), \n (std.debug-print ----<<---- enter: A0), A0, \n (std.debug-print ---->>---- exit: A0).", + "rule_text": "(std.spy A0) :- (trace.counter run A1), \n (if (not (A1 = 0)) (std.debug-print run= A1) true), \n (std.debug-print ----<<---- enter: A0), A0, \n (std.debug-print ---->>---- exit: A0).", "rule_loc": [ "File", { @@ -356158,13 +344709,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -356189,13 +344738,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -356229,8 +344776,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", + "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", "rule_loc": [ "File", { @@ -356306,13 +344852,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", + "rule_text": "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 108, "column": 0, "character": 3601 @@ -356327,8 +344871,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -356347,8 +344890,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -356443,13 +344985,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -356541,13 +345081,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -356562,13 +345100,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -356583,13 +345119,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -356604,13 +345138,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -356682,13 +345214,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -356779,13 +345309,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -356819,13 +345347,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -356859,13 +345385,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -356880,13 +345404,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -357186,13 +345708,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -357211,8 +345731,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -357237,13 +345756,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -357258,8 +345775,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -357353,8 +345869,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.spy A0) :- (trace.counter run A1), \n (if (not (A1 = 0)) (std.debug-print run= A1) true), \n (std.debug-print ----<<---- enter: A0), A0, \n (std.debug-print ---->>---- exit: A0).", + "rule_text": "(std.spy A0) :- (trace.counter run A1), \n (if (not (A1 = 0)) (std.debug-print run= A1) true), \n (std.debug-print ----<<---- enter: A0), A0, \n (std.debug-print ---->>---- exit: A0).", "rule_loc": [ "File", { @@ -357373,13 +345888,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -357404,13 +345917,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -357444,8 +345955,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", + "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", "rule_loc": [ "File", { @@ -357521,13 +346031,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", + "rule_text": "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 108, "column": 0, "character": 3601 @@ -357542,8 +346050,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -357562,8 +346069,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -357658,13 +346164,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -357756,13 +346260,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -357777,13 +346279,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -357798,13 +346298,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -357819,13 +346317,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -357897,13 +346393,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -357994,13 +346488,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -358034,13 +346526,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -358074,13 +346564,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -358095,13 +346583,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -358401,13 +346887,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -358426,8 +346910,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -358452,13 +346935,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -358473,8 +346954,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -358585,8 +347065,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.spy A0) :- (trace.counter run A1), \n (if (not (A1 = 0)) (std.debug-print run= A1) true), \n (std.debug-print ----<<---- enter: A0), A0, \n (std.debug-print ---->>---- exit: A0).", + "rule_text": "(std.spy A0) :- (trace.counter run A1), \n (if (not (A1 = 0)) (std.debug-print run= A1) true), \n (std.debug-print ----<<---- enter: A0), A0, \n (std.debug-print ---->>---- exit: A0).", "rule_loc": [ "File", { @@ -358605,13 +347084,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -358636,13 +347113,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -358676,8 +347151,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", + "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", "rule_loc": [ "File", { @@ -358753,13 +347227,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", + "rule_text": "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 108, "column": 0, "character": 3601 @@ -358774,8 +347246,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -358794,8 +347265,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -358890,13 +347360,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -358988,13 +347456,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -359009,13 +347475,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -359030,13 +347494,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -359051,13 +347513,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -359129,13 +347589,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -359226,13 +347684,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -359266,13 +347722,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -359306,13 +347760,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -359327,13 +347779,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -359633,13 +348083,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -359658,8 +348106,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -359684,13 +348131,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -359705,8 +348150,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -359790,8 +348234,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.spy A0) :- (trace.counter run A1), \n (if (not (A1 = 0)) (std.debug-print run= A1) true), \n (std.debug-print ----<<---- enter: A0), A0, \n (std.debug-print ---->>---- exit: A0).", + "rule_text": "(std.spy A0) :- (trace.counter run A1), \n (if (not (A1 = 0)) (std.debug-print run= A1) true), \n (std.debug-print ----<<---- enter: A0), A0, \n (std.debug-print ---->>---- exit: A0).", "rule_loc": [ "File", { @@ -359810,13 +348253,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -359841,13 +348282,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -359881,8 +348320,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", + "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", "rule_loc": [ "File", { @@ -359958,13 +348396,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", + "rule_text": "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 108, "column": 0, "character": 3601 @@ -359979,8 +348415,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -359999,8 +348434,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -360095,13 +348529,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -360193,13 +348625,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -360214,13 +348644,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -360235,13 +348663,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -360256,13 +348682,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -360334,13 +348758,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -360431,13 +348853,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -360471,13 +348891,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -360511,13 +348929,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -360532,13 +348948,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -360838,13 +349252,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -360863,8 +349275,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -360889,13 +349300,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -360910,8 +349319,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -361014,8 +349422,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.spy A0) :- (trace.counter run A1), \n (if (not (A1 = 0)) (std.debug-print run= A1) true), \n (std.debug-print ----<<---- enter: A0), A0, \n (std.debug-print ---->>---- exit: A0).", + "rule_text": "(std.spy A0) :- (trace.counter run A1), \n (if (not (A1 = 0)) (std.debug-print run= A1) true), \n (std.debug-print ----<<---- enter: A0), A0, \n (std.debug-print ---->>---- exit: A0).", "rule_loc": [ "File", { @@ -361034,13 +349441,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -361065,13 +349470,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -361105,8 +349508,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", + "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", "rule_loc": [ "File", { @@ -361182,13 +349584,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", + "rule_text": "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 108, "column": 0, "character": 3601 @@ -361203,8 +349603,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -361223,8 +349622,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -361319,13 +349717,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -361417,13 +349813,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -361438,13 +349832,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -361459,13 +349851,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -361480,13 +349870,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -361558,13 +349946,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -361655,13 +350041,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -361695,13 +350079,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -361735,13 +350117,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -361756,13 +350136,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -362062,13 +350440,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -362087,8 +350463,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -362113,13 +350488,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -362134,8 +350507,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -362167,8 +350539,7 @@ "Inference", { "current_goal_id": 1843, - "current_goal_text": - "std.debug-print ----<<---- enter: \n (std.take 1 \n [app\n [global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1], c0] X230^1)", + "current_goal_text": "std.debug-print ----<<---- enter: \n (std.take 1 \n [app\n [global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1], c0] X230^1)", "current_goal_predicate": "std.debug-print", "failed_attempts": [], "successful_attempts": [ @@ -362177,8 +350548,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.debug-print A0 A1) :- (!), (coq.say A0 A1).", + "rule_text": "(std.debug-print A0 A1) :- (!), (coq.say A0 A1).", "rule_loc": [ "File", { @@ -362201,8 +350571,7 @@ "siblings": [ { "goal_text": "!", "goal_id": 1854 }, { - "goal_text": - "coq.say ----<<---- enter: \n (std.take 1 \n [app\n [global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1], c0] X230^1)", + "goal_text": "coq.say ----<<---- enter: \n (std.take 1 \n [app\n [global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1], c0] X230^1)", "goal_id": 1855 } ], @@ -362215,8 +350584,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.debug-print A0 A1) :- (!), (coq.say A0 A1).", + "rule_text": "(std.debug-print A0 A1) :- (!), (coq.say A0 A1).", "rule_loc": [ "File", { @@ -362235,8 +350603,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.spy A0) :- (trace.counter run A1), \n (if (not (A1 = 0)) (std.debug-print run= A1) true), \n (std.debug-print ----<<---- enter: A0), A0, \n (std.debug-print ---->>---- exit: A0).", + "rule_text": "(std.spy A0) :- (trace.counter run A1), \n (if (not (A1 = 0)) (std.debug-print run= A1) true), \n (std.debug-print ----<<---- enter: A0), A0, \n (std.debug-print ---->>---- exit: A0).", "rule_loc": [ "File", { @@ -362255,13 +350622,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -362286,13 +350651,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -362326,8 +350689,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", + "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", "rule_loc": [ "File", { @@ -362403,13 +350765,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", + "rule_text": "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 108, "column": 0, "character": 3601 @@ -362424,8 +350784,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -362444,8 +350803,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -362540,13 +350898,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -362638,13 +350994,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -362659,13 +351013,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -362680,13 +351032,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -362701,13 +351051,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -362779,13 +351127,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -362876,13 +351222,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -362916,13 +351260,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -362956,13 +351298,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -362977,13 +351317,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -363283,13 +351621,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -363308,8 +351644,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -363334,13 +351669,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -363355,8 +351688,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -363391,8 +351723,7 @@ "cut_victims": [ { "cut_branch_for_goal": { - "goal_text": - "std.debug-print ----<<---- enter: \n (std.take 1 \n [app\n [global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1], c0] X230^1)", + "goal_text": "std.debug-print ----<<---- enter: \n (std.take 1 \n [app\n [global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1], c0] X230^1)", "goal_id": 1843 }, "cut_branch": { @@ -363420,8 +351751,7 @@ "Inference", { "current_goal_id": 1855, - "current_goal_text": - "coq.say ----<<---- enter: \n (std.take 1 \n [app\n [global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1], c0] X230^1)", + "current_goal_text": "coq.say ----<<---- enter: \n (std.take 1 \n [app\n [global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1], c0] X230^1)", "current_goal_predicate": "coq.say", "failed_attempts": [], "successful_attempts": [ @@ -363445,8 +351775,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.debug-print A0 A1) :- (!), (coq.say A0 A1).", + "rule_text": "(std.debug-print A0 A1) :- (!), (coq.say A0 A1).", "rule_loc": [ "File", { @@ -363465,8 +351794,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.spy A0) :- (trace.counter run A1), \n (if (not (A1 = 0)) (std.debug-print run= A1) true), \n (std.debug-print ----<<---- enter: A0), A0, \n (std.debug-print ---->>---- exit: A0).", + "rule_text": "(std.spy A0) :- (trace.counter run A1), \n (if (not (A1 = 0)) (std.debug-print run= A1) true), \n (std.debug-print ----<<---- enter: A0), A0, \n (std.debug-print ---->>---- exit: A0).", "rule_loc": [ "File", { @@ -363485,13 +351813,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -363516,13 +351842,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -363556,8 +351880,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", + "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", "rule_loc": [ "File", { @@ -363633,13 +351956,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", + "rule_text": "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 108, "column": 0, "character": 3601 @@ -363654,8 +351975,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -363674,8 +351994,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -363770,13 +352089,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -363868,13 +352185,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -363889,13 +352204,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -363910,13 +352223,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -363931,13 +352242,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -364009,13 +352318,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -364106,13 +352413,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -364146,13 +352451,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -364186,13 +352489,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -364207,13 +352508,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -364513,13 +352812,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -364538,8 +352835,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -364564,13 +352860,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -364585,8 +352879,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -364618,16 +352911,14 @@ "Inference", { "current_goal_id": 1844, - "current_goal_text": - "std.take 1 \n [app\n [global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1], c0] X230^1", + "current_goal_text": "std.take 1 \n [app\n [global\n (const «Builders_18.Builders_18_T__canonical__interleave_context_A»), \n c0, c1], c0] X230^1", "current_goal_predicate": "std.take", "failed_attempts": [ { "rule": [ "UserRule", { - "rule_text": - "(std.take _ _ _) :- (std.fatal-error take run out of list items).", + "rule_text": "(std.take _ _ _) :- (std.fatal-error take run out of list items).", "rule_loc": [ "File", { @@ -364648,8 +352939,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.take A0 [A1 | A2] [A1 | A3]) :- (!), (A4 is A0 - 1), \n (std.take A4 A2 A3).", + "rule_text": "(std.take A0 [A1 | A2] [A1 | A3]) :- (!), (A4 is A0 - 1), \n (std.take A4 A2 A3).", "rule_loc": [ "File", { @@ -364689,8 +352979,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.take A0 [A1 | A2] [A1 | A3]) :- (!), (A4 is A0 - 1), \n (std.take A4 A2 A3).", + "rule_text": "(std.take A0 [A1 | A2] [A1 | A3]) :- (!), (A4 is A0 - 1), \n (std.take A4 A2 A3).", "rule_loc": [ "File", { @@ -364709,8 +352998,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.spy A0) :- (trace.counter run A1), \n (if (not (A1 = 0)) (std.debug-print run= A1) true), \n (std.debug-print ----<<---- enter: A0), A0, \n (std.debug-print ---->>---- exit: A0).", + "rule_text": "(std.spy A0) :- (trace.counter run A1), \n (if (not (A1 = 0)) (std.debug-print run= A1) true), \n (std.debug-print ----<<---- enter: A0), A0, \n (std.debug-print ---->>---- exit: A0).", "rule_loc": [ "File", { @@ -364729,13 +353017,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -364760,13 +353046,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -364800,8 +353084,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", + "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", "rule_loc": [ "File", { @@ -364877,13 +353160,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", + "rule_text": "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 108, "column": 0, "character": 3601 @@ -364898,8 +353179,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -364918,8 +353198,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -365014,13 +353293,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -365112,13 +353389,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -365133,13 +353408,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -365154,13 +353427,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -365175,13 +353446,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -365253,13 +353522,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -365350,13 +353617,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -365390,13 +353655,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -365430,13 +353693,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -365451,13 +353712,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -365757,13 +354016,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -365782,8 +354039,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -365808,13 +354064,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -365829,8 +354083,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -365920,8 +354173,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.take A0 [A1 | A2] [A1 | A3]) :- (!), (A4 is A0 - 1), \n (std.take A4 A2 A3).", + "rule_text": "(std.take A0 [A1 | A2] [A1 | A3]) :- (!), (A4 is A0 - 1), \n (std.take A4 A2 A3).", "rule_loc": [ "File", { @@ -365940,8 +354192,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.spy A0) :- (trace.counter run A1), \n (if (not (A1 = 0)) (std.debug-print run= A1) true), \n (std.debug-print ----<<---- enter: A0), A0, \n (std.debug-print ---->>---- exit: A0).", + "rule_text": "(std.spy A0) :- (trace.counter run A1), \n (if (not (A1 = 0)) (std.debug-print run= A1) true), \n (std.debug-print ----<<---- enter: A0), A0, \n (std.debug-print ---->>---- exit: A0).", "rule_loc": [ "File", { @@ -365960,13 +354211,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -365991,13 +354240,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -366031,8 +354278,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", + "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", "rule_loc": [ "File", { @@ -366108,13 +354354,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", + "rule_text": "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 108, "column": 0, "character": 3601 @@ -366129,8 +354373,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -366149,8 +354392,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -366245,13 +354487,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -366343,13 +354583,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -366364,13 +354602,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -366385,13 +354621,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -366406,13 +354640,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -366484,13 +354716,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -366581,13 +354811,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -366621,13 +354849,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -366661,13 +354887,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -366682,13 +354906,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -366988,13 +355210,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -367013,8 +355233,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -367039,13 +355258,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -367060,8 +355277,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -367131,8 +355347,7 @@ "rule": [ "UserRule", { - "rule_text": - "(stop A0) :- (get-option ltac:fail A1), (!), (coq.ltac.fail A1 A0).", + "rule_text": "(stop A0) :- (get-option ltac:fail A1), (!), (coq.ltac.fail A1 A0).", "rule_loc": [ "File", { @@ -367171,8 +355386,7 @@ { "goal_text": "get-option ltac:fail X265^2", "goal_id": 1859 }, { "goal_text": "!", "goal_id": 1860 }, { - "goal_text": - "coq.ltac.fail X265^2 take run out of list items", + "goal_text": "coq.ltac.fail X265^2 take run out of list items", "goal_id": 1861 } ], @@ -367223,8 +355437,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.take A0 [A1 | A2] [A1 | A3]) :- (!), (A4 is A0 - 1), \n (std.take A4 A2 A3).", + "rule_text": "(std.take A0 [A1 | A2] [A1 | A3]) :- (!), (A4 is A0 - 1), \n (std.take A4 A2 A3).", "rule_loc": [ "File", { @@ -367243,8 +355456,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.spy A0) :- (trace.counter run A1), \n (if (not (A1 = 0)) (std.debug-print run= A1) true), \n (std.debug-print ----<<---- enter: A0), A0, \n (std.debug-print ---->>---- exit: A0).", + "rule_text": "(std.spy A0) :- (trace.counter run A1), \n (if (not (A1 = 0)) (std.debug-print run= A1) true), \n (std.debug-print ----<<---- enter: A0), A0, \n (std.debug-print ---->>---- exit: A0).", "rule_loc": [ "File", { @@ -367263,13 +355475,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -367294,13 +355504,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -367334,8 +355542,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", + "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", "rule_loc": [ "File", { @@ -367411,13 +355618,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", + "rule_text": "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 108, "column": 0, "character": 3601 @@ -367432,8 +355637,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -367452,8 +355656,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -367548,13 +355751,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -367646,13 +355847,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -367667,13 +355866,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -367688,13 +355885,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -367709,13 +355904,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -367787,13 +355980,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -367884,13 +356075,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -367924,13 +356113,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -367964,13 +356151,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -367985,13 +356170,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -368291,13 +356474,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -368316,8 +356497,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -368342,13 +356522,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -368363,8 +356541,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -368444,8 +356621,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.take A0 [A1 | A2] [A1 | A3]) :- (!), (A4 is A0 - 1), \n (std.take A4 A2 A3).", + "rule_text": "(std.take A0 [A1 | A2] [A1 | A3]) :- (!), (A4 is A0 - 1), \n (std.take A4 A2 A3).", "rule_loc": [ "File", { @@ -368464,8 +356640,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.spy A0) :- (trace.counter run A1), \n (if (not (A1 = 0)) (std.debug-print run= A1) true), \n (std.debug-print ----<<---- enter: A0), A0, \n (std.debug-print ---->>---- exit: A0).", + "rule_text": "(std.spy A0) :- (trace.counter run A1), \n (if (not (A1 = 0)) (std.debug-print run= A1) true), \n (std.debug-print ----<<---- enter: A0), A0, \n (std.debug-print ---->>---- exit: A0).", "rule_loc": [ "File", { @@ -368484,13 +356659,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -368515,13 +356688,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -368555,8 +356726,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", + "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", "rule_loc": [ "File", { @@ -368632,13 +356802,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", + "rule_text": "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 108, "column": 0, "character": 3601 @@ -368653,8 +356821,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -368673,8 +356840,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -368769,13 +356935,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -368867,13 +357031,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -368888,13 +357050,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -368909,13 +357069,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -368930,13 +357088,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -369008,13 +357164,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -369105,13 +357259,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -369145,13 +357297,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -369185,13 +357335,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -369206,13 +357354,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -369512,13 +357658,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -369537,8 +357681,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -369563,13 +357706,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -369584,8 +357725,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { @@ -369693,8 +357833,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.take A0 [A1 | A2] [A1 | A3]) :- (!), (A4 is A0 - 1), \n (std.take A4 A2 A3).", + "rule_text": "(std.take A0 [A1 | A2] [A1 | A3]) :- (!), (A4 is A0 - 1), \n (std.take A4 A2 A3).", "rule_loc": [ "File", { @@ -369713,8 +357852,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.spy A0) :- (trace.counter run A1), \n (if (not (A1 = 0)) (std.debug-print run= A1) true), \n (std.debug-print ----<<---- enter: A0), A0, \n (std.debug-print ---->>---- exit: A0).", + "rule_text": "(std.spy A0) :- (trace.counter run A1), \n (if (not (A1 = 0)) (std.debug-print run= A1) true), \n (std.debug-print ----<<---- enter: A0), A0, \n (std.debug-print ---->>---- exit: A0).", "rule_loc": [ "File", { @@ -369733,13 +357871,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c2 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -369764,13 +357900,11 @@ "rule": [ "UserRule", { - "rule_text": - "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", + "rule_text": "(extract-conclusion-params A0 (prod _ A1 A2) A3) :- (!), \n (pi (c1 \\ (decl c0 _ A1 => extract-conclusion-params A0 (A2 c0) A3))).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 115, "column": 0, "character": 3974 @@ -369804,8 +357938,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", + "rule_text": "(std.assert! A0 A1) :- (A0 ; std.fatal-error-w-data A1 A0), (!).", "rule_loc": [ "File", { @@ -369881,13 +358014,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", + "rule_text": "(factory-provides.one A0 A1 A2 A3 (triple A3 A4 A1)) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A2 A5) \n Builder illtyped, \n (coq.subst-prod\n A0 A5 A7 ,\n coq.subst-prod\n [A1] A7 A6), \n std.assert!\n (extract-conclusion-params\n A1 A6 A4) \n The conclusion of a builder is a mixin whose parameters depend on other mixins]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 108, "column": 0, "character": 3601 @@ -369902,8 +358033,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -369922,8 +358052,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", + "rule_text": "(std.map2 [A0 | A1] [A2 | A3] A4 [A5 | A6]) :- (A4 A0 A2 A5), \n (std.map2 A1 A3 A4 A6).", "rule_loc": [ "File", { @@ -370018,13 +358147,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", + "rule_text": "(factory-provides.base A0 A1 A2 _ A3) :- (std.do!\n [std.findall (from A0 A4 A5) A6, \n std.map A6 from_mixin A7, \n std.map A6 from_builder A8, \n std.map2 A8 A7 \n (factory-provides.one A1 A2) A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 100, "column": 0, "character": 3290 @@ -370116,13 +358243,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", + "rule_text": "(w-params.fold.params (w-params.nil A0 A1 A2) _ A3 A4 A5) :- (!), \n (std.do! [coq.id->name A0 A6, std.rev A4 A7, A3 A7 A6 A1 A2 A5]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 224, "column": 0, "character": 8609 @@ -370137,13 +358262,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", + "rule_text": "(w-params.fold A0 A1 A2 A3) :- (w-params.fold.params A0 A1 A2 [] A3).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 213, "column": 0, "character": 8143 @@ -370158,13 +358281,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", + "rule_text": "(w-params.then A0 A1 A2 A3 A4) :- (w-params.fold A0 A1 (c0 \\ (c1 \\ (c2 \\\n (c3 \\ (c4 \\\n (sigma (c5 \\\n (pi (c6 \\\n (decl c6 c1 c2 =>\n A3 c0 c6 (c3 c6) (c5 c6))) ,\n A2 c1 c2 c5 c4)))))))) A4).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 239, "column": 0, "character": 9183 @@ -370179,13 +358300,11 @@ "rule": [ "UserRule", { - "rule_text": - "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", + "rule_text": "(w-params.map A0 A1 A2) :- (w-params.then A0 mk-w-params.cons-name \n mk-w-params.nil-name A1 A2).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 245, "column": 0, "character": 9440 @@ -370257,13 +358376,11 @@ "rule": [ "UserRule", { - "rule_text": - "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", + "rule_text": "(factory-provides A0 A1) :- (std.do!\n [factory-alias->gref A0 A2, gref-deps A2 A3, \n w-params.map A3 (factory-provides.base A2) A1]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/database.elpi", "line": 86, "column": 0, "character": 2829 @@ -370354,13 +358471,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", + "rule_text": "(synthesis.private.factory-instance->new-mixins A0 A1 A2) :- (std.do!\n [std.assert-ok!\n (coq.typecheck\n A1 A3) \n mixin-src: X illtyped, \n if\n (not\n (coq.safe-dest-app\n A3 \n (global _) \n _)) \n (,\n (coq.term->string\n A1 A7) \n (coq.term->string\n A3 A8) \n (coq.error\n Term:\n \n A7 \n \nhas type:\n \n A8 \n \nwhich is not a record)) \n true, \n coq.term->gref\n A3 A4, \n factory-provides\n A4 A5, \n list-w-params_list\n A5 A6, \n std.filter\n A6 (c0 \\\n (not\n (std.mem!\n A0 c0))) \n A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 289, "column": 0, "character": 12694 @@ -370394,13 +358509,11 @@ "rule": [ "UserRule", { - "rule_text": - "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", + "rule_text": "(synthesis.under-mixin-src-from-factory.do! A0 A1 A2) :- (std.do!\n [synthesis.private.factory-instance->new-mixins\n [] A1 A3, \n std.map A3 (c0 \\\n (c1 \\\n (c1 =\n mixin-src A0 \n c0 A1))) A4, \n A4 => std.do! A2]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/synthesis.elpi", "line": 100, "column": 0, "character": 4390 @@ -370434,13 +358547,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", + "rule_text": "(instance.private.declare-canonical-instances-from-factory A0 A1 A2 A3) :- (\n std.do!\n [synthesis.under-mixin-src-from-factory.do! A1 A2 \n [synthesis.under-local-canonical-mixins-of.do! A1 \n [(factory-provides A0 A7 , list-w-params_list A7 A4), \n instance.private.add-all-mixins A1 A0 A4 tt _ A5, \n (findall-classes-for A4 A8 , instance.declare-all A1 A8 A6)]], \n std.append A5 A6 A3]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 282, "column": 0, "character": 12180 @@ -370455,13 +358566,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", + "rule_text": "(instance.private.declare-instance A0 A1 A2 A3 A4) :- (instance.private.declare-canonical-instances-from-factory\n A0 A1 A2 A4), \n (if (get-option export tt) \n (coq.env.current-library A5 ,\n std.map A4 (c0 \\ (c1 \\\n (sigma (c2 \\\n (sigma (c3 \\ (c0 = pr c2 c3 , c1 = instance-to-export A5 c2 c3))))))) \n A3) (A3 = [])).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 196, "column": 0, "character": 8410 @@ -370761,13 +358870,11 @@ "rule": [ "UserRule", { - "rule_text": - "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", + "rule_text": "(instance.declare-const A0 A1 A2 A3) :- (std.do!\n [std.assert-ok!\n (coq.elaborate-arity-skeleton A2 \n _ A4) Definition type illtyped, \n coq.arity->term A4 A5, \n std.assert-ok!\n (coq.elaborate-skeleton A1 A5 A6) \n Definition illtyped, \n if (A4 = arity A7) \n (if-verbose\n (coq.say\n HB: skipping section opening)\n , A8 = A6) \n (,\n (, (new_int A21) \n (std.any->string A21 A22) \n (A9 is hb_instance_ ^ A22)) \n (log.coq.env.begin-section A9) \n (instance.private.postulate-arity\n A4 [] A6 A8 A7)), \n std.assert!\n (coq.safe-dest-app A7 \n (global A10) A11) \n The type of the instance is not a factory, \n factory-alias->gref A10 A12, \n std.assert!\n (factory-nparams A12 A13) \n Not a factory synthesized by HB, \n instance.private.hack-section-discharging\n A8 A14, \n instance.private.optimize-body\n A14 A15, \n if (A0 = _) \n (, (new_int A23) \n (std.any->string A23 A24) \n (A16 is\n HB_unnamed_factory_ ^ A24)) \n (A16 = A0), \n log.coq.env.add-const-noimplicits-failondup\n A16 A15 A7 ff A17, \n A18 = global (const A17), \n std.drop A13 A11 [A19 | _], \n instance.private.check-non-forgetful-inheritance\n A19 A12, \n instance.private.declare-instance\n A12 A19 A18 A20 A3, \n if (A4 = arity _) true \n (if-verbose\n (header A25 ,\n coq.say A25 \n closing instance section) ,\n log.coq.env.end-section-name A9), \n acc-clauses current A20]).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/instance.elpi", "line": 25, "column": 0, "character": 1064 @@ -370786,8 +358893,7 @@ "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/log.elpi", "line": 289, "column": 0, "character": 11419 @@ -370812,13 +358918,11 @@ "rule": [ "UserRule", { - "rule_text": - "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", + "rule_text": "(with-attributes A0) :- (attributes A1), \n (pi (c0 \\\n (pi (c1 \\\n (pi (c2 \\\n (pi (c3 \\\n (pi (c4 \\\n (pi (c5 \\\n (pi (c6 \\\n (pi (c7 \\\n (parse-attributes.aux [attribute c0 (node c1) | c2] c3 c4 :-\n , (if (c3 = ) (c7 = c0) (c7 is c3 ^ . ^ c0)) \n (supported-attribute (att c7 attmap)) (!) \n (parse-attributes.aux c2 c3 c5) \n (pi (c8 \\ (supported-attribute (att c8 string) :- !)) =>\n parse-attributes.aux c1 c6) \n (std.append c5 [get-option c7 c6] c4))))))))))))))))) =>\n coq.parse-attributes A1 \n [att verbose bool, att mathcomp bool, att mathcomp.axiom string, \n att short.type string, att short.pack string, att infer attmap, \n att key string, att arg_sort bool, att log bool, att log.raw bool, \n att compress_coercions bool, att export bool, att skip string, \n att local bool, att fail bool, att doc string, \n att primitive_class bool, att primitive bool, \n att non_forgetful_inheritance bool, att hnf bool] A2), (!), \n (A2 => (save-docstring , A0)).", "rule_loc": [ "File", { - "filename": - "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", + "filename": "/home/gares/MATHCOMP/hierarchy-builder/HB/common/utils.elpi", "line": 14, "column": 0, "character": 453 @@ -370833,8 +358937,7 @@ "rule": [ "UserRule", { - "rule_text": - "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", + "rule_text": "(main [const-decl A0 (some A1) A2]) :- (!), \n (with-attributes (with-logging (instance.declare-const A0 A1 A2 _))).", "rule_loc": [ "File", { diff --git a/tests/sources/trace.elab.json b/tests/sources/trace.elab.json index 732f1cec..a4127fac 100644 --- a/tests/sources/trace.elab.json +++ b/tests/sources/trace.elab.json @@ -271,8 +271,7 @@ } ], "events": [ - [ "Assign", "A0 := 1" ], - [ "Assign", "A1 := 2 + 3" ] + [ "Assign", "A0 := 1" ], [ "Assign", "A1 := 2 + 3" ] ] }, "siblings": [ { "goal_text": "calc (2 + 3) 1", "goal_id": 8 } ], diff --git a/tests/sources/trace2.elab.json b/tests/sources/trace2.elab.json index 9c00563e..c53c205b 100644 --- a/tests/sources/trace2.elab.json +++ b/tests/sources/trace2.elab.json @@ -21,8 +21,7 @@ "rule": [ "UserRule", { - "rule_text": - "main :- (print 1), (pi (c0 \\ (sigma (c1 \\ (fail => (true , fail)))))).", + "rule_text": "main :- (print 1), (pi (c0 \\ (sigma (c1 \\ (fail => (true , fail)))))).", "rule_loc": [ "File", { @@ -52,8 +51,7 @@ "rule": [ "UserRule", { - "rule_text": - "main :- (print 1), (pi (c0 \\ (sigma (c1 \\ (fail => (true , fail)))))).", + "rule_text": "main :- (print 1), (pi (c0 \\ (sigma (c1 \\ (fail => (true , fail)))))).", "rule_loc": [ "File", { @@ -104,8 +102,7 @@ "rule": [ "UserRule", { - "rule_text": - "main :- (print 1), (pi (c0 \\ (sigma (c1 \\ (fail => (true , fail)))))).", + "rule_text": "main :- (print 1), (pi (c0 \\ (sigma (c1 \\ (fail => (true , fail)))))).", "rule_loc": [ "File", { @@ -161,8 +158,7 @@ "rule": [ "UserRule", { - "rule_text": - "main :- (print 1), (pi (c0 \\ (sigma (c1 \\ (fail => (true , fail)))))).", + "rule_text": "main :- (print 1), (pi (c0 \\ (sigma (c1 \\ (fail => (true , fail)))))).", "rule_loc": [ "File", { @@ -220,8 +216,7 @@ "rule": [ "UserRule", { - "rule_text": - "main :- (print 1), (pi (c0 \\ (sigma (c1 \\ (fail => (true , fail)))))).", + "rule_text": "main :- (print 1), (pi (c0 \\ (sigma (c1 \\ (fail => (true , fail)))))).", "rule_loc": [ "File", { @@ -282,8 +277,7 @@ "rule": [ "UserRule", { - "rule_text": - "main :- (print 1), (pi (c0 \\ (sigma (c1 \\ (fail => (true , fail)))))).", + "rule_text": "main :- (print 1), (pi (c0 \\ (sigma (c1 \\ (fail => (true , fail)))))).", "rule_loc": [ "File", { @@ -352,8 +346,7 @@ "rule": [ "UserRule", { - "rule_text": - "main :- (print 1), (pi (c0 \\ (sigma (c1 \\ (fail => (true , fail)))))).", + "rule_text": "main :- (print 1), (pi (c0 \\ (sigma (c1 \\ (fail => (true , fail)))))).", "rule_loc": [ "File", { @@ -452,8 +445,7 @@ "rule": [ "UserRule", { - "rule_text": - "main :- (print 1), (pi (c0 \\ (sigma (c1 \\ (fail => (true , fail)))))).", + "rule_text": "main :- (print 1), (pi (c0 \\ (sigma (c1 \\ (fail => (true , fail)))))).", "rule_loc": [ "File", { @@ -530,8 +522,7 @@ "rule": [ "UserRule", { - "rule_text": - "main :- (print 1), (pi (c0 \\ (sigma (c1 \\ (fail => (true , fail)))))).", + "rule_text": "main :- (print 1), (pi (c0 \\ (sigma (c1 \\ (fail => (true , fail)))))).", "rule_loc": [ "File", { diff --git a/tests/sources/trace_chr.elab.json b/tests/sources/trace_chr.elab.json index f18c236c..0b8b977e 100644 --- a/tests/sources/trace_chr.elab.json +++ b/tests/sources/trace_chr.elab.json @@ -21,8 +21,7 @@ "rule": [ "UserRule", { - "rule_text": - "main :- (even A0), (declare_constraint true A0), (A0 = s A1), \n (not (even A1)).", + "rule_text": "main :- (even A0), (declare_constraint true A0), (A0 = s A1), \n (not (even A1)).", "rule_loc": [ "File", { @@ -51,8 +50,7 @@ "rule": [ "UserRule", { - "rule_text": - "main :- (even A0), (declare_constraint true A0), (A0 = s A1), \n (not (even A1)).", + "rule_text": "main :- (even A0), (declare_constraint true A0), (A0 = s A1), \n (not (even A1)).", "rule_loc": [ "File", { @@ -88,8 +86,7 @@ "rule": [ "UserRule", { - "rule_text": - "(even (as uvar A0)) :- (declare_constraint (even A0) A0).", + "rule_text": "(even (as uvar A0)) :- (declare_constraint (even A0) A0).", "rule_loc": [ "File", { @@ -118,8 +115,7 @@ "rule": [ "UserRule", { - "rule_text": - "(even (as uvar A0)) :- (declare_constraint (even A0) A0).", + "rule_text": "(even (as uvar A0)) :- (declare_constraint (even A0) A0).", "rule_loc": [ "File", { @@ -138,8 +134,7 @@ "rule": [ "UserRule", { - "rule_text": - "main :- (even A0), (declare_constraint true A0), (A0 = s A1), \n (not (even A1)).", + "rule_text": "main :- (even A0), (declare_constraint true A0), (A0 = s A1), \n (not (even A1)).", "rule_loc": [ "File", { @@ -178,8 +173,7 @@ "rule": [ "UserRule", { - "rule_text": - "(even (as uvar A0)) :- (declare_constraint (even A0) A0).", + "rule_text": "(even (as uvar A0)) :- (declare_constraint (even A0) A0).", "rule_loc": [ "File", { @@ -198,8 +192,7 @@ "rule": [ "UserRule", { - "rule_text": - "main :- (even A0), (declare_constraint true A0), (A0 = s A1), \n (not (even A1)).", + "rule_text": "main :- (even A0), (declare_constraint true A0), (A0 = s A1), \n (not (even A1)).", "rule_loc": [ "File", { @@ -238,8 +231,7 @@ "rule": [ "UserRule", { - "rule_text": - "main :- (even A0), (declare_constraint true A0), (A0 = s A1), \n (not (even A1)).", + "rule_text": "main :- (even A0), (declare_constraint true A0), (A0 = s A1), \n (not (even A1)).", "rule_loc": [ "File", { @@ -274,8 +266,7 @@ "attempt": { "rule": [ "BuiltinRule", [ "Logic", "eq" ] ], "events": [ - [ "Assign", "X0 := s X1" ], - [ "ResumeGoal", [ 11, 10 ] ] + [ "Assign", "X0 := s X1" ], [ "ResumeGoal", [ 11, 10 ] ] ] }, "siblings": [], @@ -293,8 +284,7 @@ "rule": [ "UserRule", { - "rule_text": - "main :- (even A0), (declare_constraint true A0), (A0 = s A1), \n (not (even A1)).", + "rule_text": "main :- (even A0), (declare_constraint true A0), (A0 = s A1), \n (not (even A1)).", "rule_loc": [ "File", { @@ -395,8 +385,7 @@ "rule": [ "UserRule", { - "rule_text": - "main :- (even A0), (declare_constraint true A0), (A0 = s A1), \n (not (even A1)).", + "rule_text": "main :- (even A0), (declare_constraint true A0), (A0 = s A1), \n (not (even A1)).", "rule_loc": [ "File", { @@ -485,8 +474,7 @@ "rule": [ "UserRule", { - "rule_text": - "(even (as uvar A0)) :- (declare_constraint (even A0) A0).", + "rule_text": "(even (as uvar A0)) :- (declare_constraint (even A0) A0).", "rule_loc": [ "File", { @@ -505,8 +493,7 @@ "rule": [ "UserRule", { - "rule_text": - "main :- (even A0), (declare_constraint true A0), (A0 = s A1), \n (not (even A1)).", + "rule_text": "main :- (even A0), (declare_constraint true A0), (A0 = s A1), \n (not (even A1)).", "rule_loc": [ "File", { @@ -542,8 +529,7 @@ "rule": [ "UserRule", { - "rule_text": - "(odd (as uvar A0)) :- (declare_constraint (odd A0) A0).", + "rule_text": "(odd (as uvar A0)) :- (declare_constraint (odd A0) A0).", "rule_loc": [ "File", { @@ -572,8 +558,7 @@ "rule": [ "UserRule", { - "rule_text": - "(odd (as uvar A0)) :- (declare_constraint (odd A0) A0).", + "rule_text": "(odd (as uvar A0)) :- (declare_constraint (odd A0) A0).", "rule_loc": [ "File", { @@ -621,8 +606,7 @@ "rule": [ "UserRule", { - "rule_text": - "(even (as uvar A0)) :- (declare_constraint (even A0) A0).", + "rule_text": "(even (as uvar A0)) :- (declare_constraint (even A0) A0).", "rule_loc": [ "File", { @@ -641,8 +625,7 @@ "rule": [ "UserRule", { - "rule_text": - "main :- (even A0), (declare_constraint true A0), (A0 = s A1), \n (not (even A1)).", + "rule_text": "main :- (even A0), (declare_constraint true A0), (A0 = s A1), \n (not (even A1)).", "rule_loc": [ "File", { @@ -681,8 +664,7 @@ "rule": [ "UserRule", { - "rule_text": - "(odd (as uvar A0)) :- (declare_constraint (odd A0) A0).", + "rule_text": "(odd (as uvar A0)) :- (declare_constraint (odd A0) A0).", "rule_loc": [ "File", { @@ -730,8 +712,7 @@ "rule": [ "UserRule", { - "rule_text": - "(even (as uvar A0)) :- (declare_constraint (even A0) A0).", + "rule_text": "(even (as uvar A0)) :- (declare_constraint (even A0) A0).", "rule_loc": [ "File", { @@ -750,8 +731,7 @@ "rule": [ "UserRule", { - "rule_text": - "main :- (even A0), (declare_constraint true A0), (A0 = s A1), \n (not (even A1)).", + "rule_text": "main :- (even A0), (declare_constraint true A0), (A0 = s A1), \n (not (even A1)).", "rule_loc": [ "File", { @@ -834,8 +814,7 @@ "rule": [ "UserRule", { - "rule_text": - "main :- (even A0), (declare_constraint true A0), (A0 = s A1), \n (not (even A1)).", + "rule_text": "main :- (even A0), (declare_constraint true A0), (A0 = s A1), \n (not (even A1)).", "rule_loc": [ "File", { @@ -871,8 +850,7 @@ "rule": [ "UserRule", { - "rule_text": - "(even (as uvar A0)) :- (declare_constraint (even A0) A0).", + "rule_text": "(even (as uvar A0)) :- (declare_constraint (even A0) A0).", "rule_loc": [ "File", { @@ -901,8 +879,7 @@ "rule": [ "UserRule", { - "rule_text": - "(even (as uvar A0)) :- (declare_constraint (even A0) A0).", + "rule_text": "(even (as uvar A0)) :- (declare_constraint (even A0) A0).", "rule_loc": [ "File", { @@ -940,8 +917,7 @@ "rule": [ "UserRule", { - "rule_text": - "main :- (even A0), (declare_constraint true A0), (A0 = s A1), \n (not (even A1)).", + "rule_text": "main :- (even A0), (declare_constraint true A0), (A0 = s A1), \n (not (even A1)).", "rule_loc": [ "File", { @@ -980,8 +956,7 @@ "rule": [ "UserRule", { - "rule_text": - "(even (as uvar A0)) :- (declare_constraint (even A0) A0).", + "rule_text": "(even (as uvar A0)) :- (declare_constraint (even A0) A0).", "rule_loc": [ "File", { @@ -1019,8 +994,7 @@ "rule": [ "UserRule", { - "rule_text": - "main :- (even A0), (declare_constraint true A0), (A0 = s A1), \n (not (even A1)).", + "rule_text": "main :- (even A0), (declare_constraint true A0), (A0 = s A1), \n (not (even A1)).", "rule_loc": [ "File", { @@ -1097,8 +1071,7 @@ "step_id": 0, "runtime_id": 2, "step": [ - "Init", - { "goal_text": "odd (s z)", "goal_id": 23 } + "Init", { "goal_text": "odd (s z)", "goal_id": 23 } ], "color": "Grey" }, @@ -1122,8 +1095,7 @@ "rule_loc": [ "File", { - "filename": - "tests/sources/trace_chr.elpi", + "filename": "tests/sources/trace_chr.elpi", "line": 13, "column": 0, "character": 209 @@ -1185,8 +1157,7 @@ "rule_loc": [ "File", { - "filename": - "tests/sources/trace_chr.elpi", + "filename": "tests/sources/trace_chr.elpi", "line": 11, "column": 0, "character": 200 @@ -1374,8 +1345,7 @@ "rule": [ "UserRule", { - "rule_text": - "main :- (even A0), (declare_constraint true A0), (A0 = s A1), \n (not (even A1)).", + "rule_text": "main :- (even A0), (declare_constraint true A0), (A0 = s A1), \n (not (even A1)).", "rule_loc": [ "File", { diff --git a/tests/sources/trace_findall.elab.json b/tests/sources/trace_findall.elab.json index f96f0bd6..9f521bd1 100644 --- a/tests/sources/trace_findall.elab.json +++ b/tests/sources/trace_findall.elab.json @@ -84,8 +84,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.findall A0 A1) :- (findall_solutions A0 A1).", + "rule_text": "(std.findall A0 A1) :- (findall_solutions A0 A1).", "rule_loc": [ "File", { @@ -98,8 +97,7 @@ } ], "events": [ - [ "Assign", "A0 := p _" ], - [ "Assign", "A1 := X0" ] + [ "Assign", "A0 := p _" ], [ "Assign", "A1 := X0" ] ] }, "siblings": [ @@ -114,8 +112,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.findall A0 A1) :- (findall_solutions A0 A1).", + "rule_text": "(std.findall A0 A1) :- (findall_solutions A0 A1).", "rule_loc": [ "File", { @@ -440,8 +437,7 @@ "rule": [ "UserRule", { - "rule_text": - "(std.findall A0 A1) :- (findall_solutions A0 A1).", + "rule_text": "(std.findall A0 A1) :- (findall_solutions A0 A1).", "rule_loc": [ "File", { From 03c518ed18600d15b32a737a1a61a0d991a7de61 Mon Sep 17 00:00:00 2001 From: Julien Puydt Date: Tue, 25 Oct 2022 10:25:41 +0200 Subject: [PATCH 2/2] Tighten the dependency on atd in elpi.opam --- elpi.opam | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/elpi.opam b/elpi.opam index 0421d9f9..0ab0267b 100644 --- a/elpi.opam +++ b/elpi.opam @@ -25,8 +25,8 @@ depends: [ "cmdliner" {with-test} "dune" {>= "2.8.0"} "conf-time" {with-test} - "atdgen" {>= "2.9.1" & < "2.10.0"} - "atdts" {>= "2.9.1" & < "2.10.0"} + "atdgen" {>= "2.10.0"} + "atdts" {>= "2.10.0"} "odoc" {with-doc} ] depopts: [